OWIN interferes with log4net
本文关键字:log4net with interferes OWIN | 更新日期: 2023-09-27 18:16:41
在我的应用程序中,我有以下日志记录策略/追加器:
- DebugAppender:如果根级别为DEBUG,则将所有与DEBUG匹配的消息写入默认跟踪侦听器输出
- ConsoleAppender:如果应用程序模式(全局上下文属性)是'console',则将上面的每个消息写入控制台输出
- EventLogAppender:如果应用程序模式(全局上下文属性)是'service',将error以上的每个消息写入控制台输出
- RollingFileAppender:将INFO以上的所有消息写入滚动平面文件
这在整个应用程序中工作得非常好,直到我使用IAppBuilder
接口启动OWIN web主机的第一行。当我调用WebApp.Start
时,我注意到以下行为:
- 调试消息(ILogger.Debug)正在被写入控制台输出
- 调试消息(ILogger.Debug)被两次写入VS调试输出
经过进一步调查,我发现OWIN将System.Diagnostics.DefaultTraceListener
和System.Diagnostics.TextWriterTraceListener
的实例静默地附加到默认的跟踪/调试输出中,这可能是问题的根源。然而,在app.config中明确声明DefaultTraceListener
并没有帮助。
是否有任何方法我可以配置OWIN更少…偷偷摸摸的?
您可以在启动代码中删除侦听器,例如:
Trace.Listeners.Remove("HostingTraceListener");
(源代码名称)