ETW - 删除日志文件导致日志记录中断?

时间:2015-01-13 09:19:17

标签: winapi etw

我已经开始使用Microsoft推荐的ETW日志记录,因为它具有高性能并且可以防止重新发明轮子等。

但是,我发现如果有人删除了日志文件,那么日志记录将停止工作,直到跟踪会话停止并重新启动。如果API实际上返回了一个错误,我可以忍受这个,所以我可以自己重启,但没有任何返回任何错误代码。

我的问题是 - 我该如何应对这种情况?有没有办法告诉ETW锁定文件以防止删除?某些东西应该返回错误吗?

请注意,我使用的是NT5 API级别,但在NT6 +上可以看到此问题。

相关API':

RegisterTraceGuids
StartTrace
EnableTrace
TraceEvent

我希望在删除文件时可以调用控件回调,但没有任何反应。

1 个答案:

答案 0 :(得分:0)

如果您正在使用EventSource库,请查看Vance Morrison的博客文章Why doesn't my EventSource produce any events?简短回答:通常会吞下异常,因为日志记录系统不应该使您的应用程序崩溃。在博客条目中,他解释了如何通过建立外部跟踪会话来查看引发的异常。您可能希望定期轮询文件是否存在,并以某种方式发出错误报告。

相关问题