将事件侦听器附加到 Microsoft.IdentityModel.Logging
Attach Event Listener to Microsoft.IdentityModel.Logging
这是一个使用框架 4.7 的 asp.net 应用程序。
我正在尝试附加到 asp.net 应用程序中的 Microsoft.IdentityModel.Logging.IdentityModelEventSource.Logger(我在 OWIN 启动 class 中使用 OpenIdConnect,我遇到了问题并希望附加到这个记录器可能会给我一些线索。
在我的 OWIN 启动 class 中,在 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" 始终为 null。我究竟做错了什么?
消息在e.Payload.
所以尝试将您的代码更改为:
private void Listener_EventWritten(object sender, EventWrittenEventArgs e)
{
foreach (object payload in e.Payload)
{
Debug.WriteLine($"[{e.EventName}] {e.Message} | {payload}");
}
}
它适合我。
这是一个使用框架 4.7 的 asp.net 应用程序。
我正在尝试附加到 asp.net 应用程序中的 Microsoft.IdentityModel.Logging.IdentityModelEventSource.Logger(我在 OWIN 启动 class 中使用 OpenIdConnect,我遇到了问题并希望附加到这个记录器可能会给我一些线索。
在我的 OWIN 启动 class 中,在 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" 始终为 null。我究竟做错了什么?
消息在e.Payload.
所以尝试将您的代码更改为:
private void Listener_EventWritten(object sender, EventWrittenEventArgs e)
{
foreach (object payload in e.Payload)
{
Debug.WriteLine($"[{e.EventName}] {e.Message} | {payload}");
}
}
它适合我。