5

在我的应用程序中,我有以下日志记录策略/附加程序:

  • DebugAppender:如果根级别为 DEBUG,则将每条匹配 DEBUG 的消息写入默认跟踪侦听器输出
  • ConsoleAppender:如果应用程序模式(全局上下文属性)是“控制台”,则将 WARN 以上的每条消息写入控制台输出
  • EventLogAppender:如果应用程序模式(全局上下文属性)为“服务”,则将 ERRROR 以上的每条消息写入控制台输出
  • RollingFileAppender:将 INFO 上方的每条消息写入滚动平面文件

这在整个应用程序中都非常有效,直到第一行我使用该IAppBuilder界面启动 OWIN Web 主机。一旦我调用WebApp.Start,我注意到以下行为:

  • 调试消息 (ILogger.Debug) 正在写入控制台输出
  • 调试消息 (ILogger.Debug) 两次写入 VS 调试输出

经过进一步调查,我发现 OWIN 默默地将一个实例附加System.Diagnostics.DefaultTraceListenerSystem.Diagnostics.TextWriterTraceListener默认跟踪/调试输出,这可能是问题的根源。但是,DefaultTraceListener明确声明 in app.config 并没有帮助。

有什么办法可以将 OWIN 配置得不那么……偷偷摸摸吗?

4

1 回答 1

4

您可以在启动代码中删除监听器,例如:

Trace.Listeners.Remove("HostingTraceListener");

源代码中的名称)

于 2014-08-06T16:13:40.987 回答