在我的应用程序中,我有以下日志记录策略/附加程序:
- DebugAppender:如果根级别是DEBUG,将匹配DEBUG的每条消息写入默认跟踪监听器输出
- ConsoleAppender:如果应用程序模式(全局上下文属性)为“console”,则将 WARN 上方的每条消息写入控制台输出
- EventLogAppender:如果应用程序模式(全局上下文属性)为“服务”,则将 ERRROR 以上的每条消息写入控制台输出
- RollingFileAppender:将 INFO 之上的每条消息写入滚动平面文件
这在整个应用程序中运行良好,直到第一行我使用 IAppBuilder
界面启动 OWIN 网络主机。我一调用 WebApp.Start
,就注意到以下行为:
- 调试消息 (ILogger.Debug) 正在写入控制台输出
- 调试消息 (ILogger.Debug) 被两次写入 VS 调试输出
经过进一步调查,我发现 OWIN 默默地将 System.Diagnostics.DefaultTraceListener
和 System.Diagnostics.TextWriterTraceListener
的实例附加到默认跟踪/调试输出,这可能是问题的根源。但是,在 app.config 中显式声明 DefaultTraceListener
没有帮助。
有什么方法可以将 OWIN 配置得不那么...偷偷摸摸吗?
最佳答案
关于c# - OWIN 干扰 log4net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25155980/