Присоедините прослушиватель событий к Microsoft.IdentityModel.Logging - PullRequest
0 голосов
/ 23 сентября 2019

Это приложение asp.net, использующее инфраструктуру 4.7.

Я пытаюсь подключиться к Microsoft.IdentityModel.Logging.IdentityModelEventSource.Logger в приложении asp.net (я использую OpenIdConnect вкласс запуска OWIN, у меня проблемы и я надеюсь, что подключение к этому регистратору может дать мне некоторые подсказки).

В моем классе запуска OWIN в методе Configuration () у меня есть следующее:

     Microsoft.IdentityModel.Logging.IdentityModelEventSource.Logger.LogLevel = System.Diagnostics.Tracing.EventLevel.Verbose;
            Microsoft.IdentityModel.Logging.IdentityModelEventSource.ShowPII = true;
            var listener = new EventListener();
            listener.EnableEvents(Microsoft.IdentityModel.Logging.IdentityModelEventSource.Logger, EventLevel.LogAlways);
            listener.EventWritten += Listener_EventWritten;
            Microsoft.IdentityModel.Logging.IdentityModelEventSource.Logger.WriteVerbose("A test message.");

И в моем методе Listener_EventWritten у меня есть следующее:

private void Listener_EventWritten(object sender, EventWrittenEventArgs e)
    {
        Debug.WriteLine(e.EventName + "," + e.Message);
    }

Этот метод запускается несколько раз, но «e.Message» всегда равен нулю.Что я делаю неправильно?

1 Ответ

1 голос
/ 25 сентября 2019

Сообщение находится в e.Payload .

Поэтому попробуйте изменить Ваш код на:

private void Listener_EventWritten(object sender, EventWrittenEventArgs e)
{
    foreach (object payload in e.Payload)
    {
        Debug.WriteLine($"[{e.EventName}] {e.Message} | {payload}");
    }
}

Это работает для меня правильно.

...