在立即窗口中查看log4net的调试信息

9
我有一个使用log4net的应用程序。我将调试信息同时输出到文件和stdout。
正常启动应用程序时,我在输出窗格以及文件中看到所有消息。
如果我创建一个类/运行一个函数,在立即窗口中写入日志,我既不在输出窗格中看到任何东西,也不在立即窗口中看到任何东西。但是我确实在文件中看到了日志。
是否有任何方法可以修复它,以便我能够在立即窗口中看到这些消息? log4net配置:
<log4net>
    <root>
      <level value="DEBUG"/>
      <appender-ref ref="FileAppender"/>
      <appender-ref ref="ConsoleAppender"/>
      <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%date{dd.MM.yyyy HH:mm:ss.ffff} [%thread] %level %logger%exception - %message%newline"/>
        </layout>
      </appender>
      <appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
        <file value="logs/log.txt" />
        <appendToFile value="true" />
        <rollingStyle value="Size" />
        <maxSizeRollBackups value="1" />
        <maximumFileSize value="1MB" />
        <staticLogFileName value="true" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%date{dd.MM.yyyy HH:mm:ss.ffff} [%thread] %level %logger%exception - %message%newline"/>
        </layout>
      </appender>
    </root>
  </log4net>

你可以发布一下你的日志配置吗? - Schwarzie2478
你如何将日志记录到即时窗口? - Schwarzie2478
我将日志记录到stdout,但是在使用即时窗口时,它既不显示在输出窗口中也不显示在即时窗口中。 - Bartlomiej Lewandowski
1
我认为你需要添加一个TraceAppender - stuartd
1个回答

14

在配置中添加DebugAppender,以便在立即窗口中显示消息(我在VS2013上测试过)

  <root>
    <level value="DEBUG" />
    <appender-ref ref="FileAppender" />
    <appender-ref ref="ConsoleAppender" />
    <appender-ref ref="DebugAppender" />
  </root>
  <appender name="DebugAppender" type="log4net.Appender.DebugAppender">
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date{dd.MM.yyyy HH:mm:ss.ffff} [%thread] %level %logger%exception - %message%newline" />
    </layout>
  </appender>

1
DebugAppender 文档 - stuartd
跟踪附加器也可以工作:它会在输出窗口中显示消息。 - Stefan Egli
@StefanEgli,你说的备选方案是正确的,但你确定它会在输出窗口中记录吗?我正在查看Output/Debug,但我没有看到通过TraceAppender在立即窗口中记录的消息。 - samy
@samy:TraceAppender 只会在正常运行调试器时显示在输出窗口中。如果我在即时窗口中启动一个方法,那么输出窗口中就不会显示任何内容。 - Stefan Egli

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接