log4net - 使用多个appender进行日志记录

时间:2013-11-22 21:30:06

标签: log4net

我想将消息记录到TextBox以及文件中。我找到了一个记录到TextBox的示例(http://www.codeproject.com/Articles/43027/Logging-display-and-WPF)。我修改了app.config并用另一个appender扩展它。

配置文件如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <appSettings>
    <add key="log4net.Internal.Debug" value="false"/>
  </appSettings>
  <system.diagnostics>
    <trace autoflush="true">
      <listeners>
        <add name="textWriterTraceListener"
             type="System.Diagnostics.TextWriterTraceListener"
             initializeData="C:\log4net_internal.log"/>
      </listeners>
    </trace>
  </system.diagnostics>
  <log4net>
    <appender name="NotifyAppender" type="log4netSample.Logging.NotifyAppender" >
      <layout type="log4net.Layout.PatternLayout">
        <param name="Header" value="[Header]\r\n" />
        <param name="Footer" value="[Footer]\r\n" />
        <param name="ConversionPattern" value="%d [%t] %-5p %c %m%n" />
      </layout>
    </appender>

    <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
      <param name="File" value="c:\PrestAba.log" />
      <param name="AppendToFile" value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="Header" value="[Header]\r\n" />
        <param name="Footer" value="[Footer]\r\n" />
        <param name="ConversionPattern" value="%d [%t] %-5p %c %m%n" />
      </layout>
    </appender>

    <root>
      <level value="ALL" />
      <appender-ref ref="NotifyAppender" />
      <appender-ref ref="LogFileAppender" />
    </root>
  </log4net>
</configuration>

当我运行应用程序并编写日志消息时,它只记录TextBox。是否需要更多修改?

1 个答案:

答案 0 :(得分:0)

我相信您的文件名必须转义才能阅读:

<param name="File" value="c:\\PrestAba.log" />

此外,您可以将其浓缩为

<file value="c:\\PrestAba.log" />

这更具可读性,更符合log4net制作可读和可维护XML的意图。