Jam*_*rld 28 .net log4net trace visual-studio-2010 visual-studio
我正在使用log4net DebugAppender(或TraceAppender).我已经配置了这样的appender:
<appender name="DebugAppender" type="log4net.Appender.DebugAppender">
    <immediateFlush value="true" />
        <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%level %message%newline" />
    </layout>
</appender>
代码中的记录器以通常的每类方式声明:
private static readonly ILog Log = 
    LogManager.GetLogger(typeof(TradingApiRouteCollectionExtensions));
"输出"窗口中的输出如下所示:
Acme.Common.Configuration.TradingApiRouteCollectionExtensions:DEBUG为服务注册路由前缀'session'Acme.Session.SessionService Acme.Common.Configuration.TradingApiRouteCollectionExtensions:为类型Acme.Session.SessionService找到的DEBUG Web方法:Acme.Common.Configuration.TradingApiRouteCollectionExtensions:调试会议/
注意每行是如何以记录器类型名称开头的.我想压制这个,因为我没有在配置中要求它,我不想要它.我看不出任何明显的方法来做到这一点.可能吗?
Ste*_*gli 15
您需要创建自己的appender.您正在使用的那个做如下:
System.Diagnostics.Debug.Write(RenderLoggingEvent(loggingEvent), loggingEvent.LoggerName);
if (!this.m_immediateFlush)
    return;
System.Diagnostics.Debug.Flush();
因此,您总是在输出窗口中以类(记录器)名称结束.您可以从log4net Debug appender派生并覆盖该Append方法.
elm*_*tec 10
或者,您可以使用启动布局转换模式%newline.从我的配置:
    <appender name="DebuggerAppender" type="log4net.Appender.DebugAppender">
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%newline%file (%line): %level: %message%newline"/>
        </layout>
    </appender>
优点:它比创建自己的appender更快
缺点:它显示您登录2行.
请注意%file (%line)该行的开头是Visual Studio解释的格式.它允许您单击输出窗口中的日志消息,并直接进入生成它的代码.
如果您阅读TraceAppender 源代码,您会发现实际上记录器名称被写为跟踪的默认“类别”名称。因此,如果您已经设置了该值,则记录器名称将不会显示在输出中。
所以使用下面的配置:
<appender name="TraceAppender" type="log4net.Appender.TraceAppender">
  <category value="" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %level - %message%newline%exception" />
  </layout>
</appender>
输出将是:
: 2017-02-27 22:53:26,335 [6] INFO - Task Ended
但你可能会发现每一行都以“:”开头,这很难看。所以我的类别配置是:
...
<category value="LOG" />
...
输出是:
LOG: 2017-02-27 22:53:26,335 [6] INFO - Task Ended
注意:DebugAppender 不提供覆盖类别的方法。只有 TraceAppender 有效。
| 归档时间: | 
 | 
| 查看次数: | 3504 次 | 
| 最近记录: |