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() –