Я хотел бы использовать ETW для регистрации событий и считаю, что у меня все правильно настроено. Однако, когда приложение закрывается, я не вижу никаких событий в файле. У меня есть FileLoggingSession и LoggingChannel, созданные и связанные. У меня нет ошибок при использовании LoggingChannel. Кажется, что все работает правильно, но в файлах журналов нет сообщений, которые я отправляю.ETW регистрация в UWP
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 для большей части этого кода. Я просто не вижу вызовы .LogMessage (...), отображаемые в файле .etl. Благодарю. –
Ничего. Он работает, мне просто нужно заманить программу близко и выпустить .CloseAndSaveToFileAsync() –