log4net-使用多个附加器记录日志

log4net-使用多个附加器记录日志,log4net,Log4net,我想将消息记录到文本框和文件。我发现了一个登录到TextBox的示例。我修改了app.config并用另一个appender扩展它 配置文件如下所示: <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHa

我想将消息记录到文本框和文件。我发现了一个登录到TextBox的示例。我修改了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>

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

我认为必须转义您的文件名才能读取:

<param name="File" value="c:\\PrestAba.log" />
而且,你可以把它浓缩成

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

它更具可读性,更符合log4net创建可读和可维护XML的意图。

一个建议是在appSettings中将log4net.Internal.Debug设置为true,以查看XMLConfigurator如何拾取和读取配置文件。