0
我想使用ETW进行事件日志记录,并且相信我已经正确设置了一切。但是,当应用程序退出时,我没有在文件中看到任何事件。我创建并关联了一个FileLoggingSession和LoggingChannel。我在使用LoggingChannel时没有遇到任何错误。一切似乎行为正常,但日志文件似乎没有任何我发布的消息。在UWP中的ETW日志记录
public EtwLogger()
{
_channel = new LoggingChannel(LibSettings._etwLogChannel, null);
_channel.LoggingEnabled += _channel_LoggingEnabled;
_session = new FileLoggingSession(LibSettings._etwLogSession);
_session.LogFileGenerated += _session_LogFileGenerated;
_session.AddLoggingChannel(_channel);
}
public Task Log(LogEntry logEntry)
{
if (!isDisposed && _channel.IsEnabled(SeverityToLoggingLevel(logEntry.Severity)))
{
string message = $"{logEntry.TimeStamp.ToLocalTime().ToString("s")} {SeverityToString(logEntry.Severity)} : ";
if (logEntry.Source?.Length > 0)
message += $"{logEntry.Source} {logEntry.Message}";
else
message += $"{logEntry.Message}";
_channel.LogMessage(message, SeverityToLoggingLevel(logEntry.Severity));
Debug.WriteLine($"ETW: {message}");
}
return Task.FromResult(0);
}
任何帮助,将不胜感激。谢谢。
我假设你没有使用自己的自定义ETW清单?你在录什么供应商? – Sunius
我不确定你在问什么。我没有自定义清单,但对提供者的问题不确定。基本上,我只想使用ETW框架来记录事件消息。我在这个代码中使用了UWP示例应用程序。我只是看不到在.etl文件中显示的.LogMessage(...)调用。谢谢。 –
没关系。它正在工作,我只需要关闭程序并发出.CloseAndSaveToFileAsync() –