log4net没有';t写入文件

本文关键字:文件 没有 log4net | 更新日期: 2023-09-27 18:24:58

我有一个Windows窗体应用程序,我正在尝试使用log4net来记录文件
在我的app.config中,我有:

<log4net debug="false">
    <appender name="LogFileAppender" type="log4net.Appender.FileAppender,log4net" >
      <param name="File" value="C:'...'LogFile.txt" />
      <param name="AppendToFile" value="true" />
      <layout type="log4net.Layout.PatternLayout,log4net">
        <param name="ConversionPattern" value="%n%n%n%d [%t] %-5p %c  - %m%n%n" />
      </layout>
    </appender>
    <root>
      <priority value="ALL" />
      <appender-ref ref="LogFileAppender" />
    </root>
    <category name="DesktopLogger.Form1">
      <priority value="ALL" />
    </category>
</log4net>

在主表单后面的代码中,我有:

public log4net.ILog    Logger  { get; set; }

作为一个属性,在表单初始化中我有:

log4net.Config.XmlConfigurator.Configure();
this.Logger= LogManager.GetLogger(typeof(Program));

之后,在点击按钮事件上,我有:

this.Logger.Info("text for the logger");

当我在那之后打开文件时,没有任何东西被写入。它只是一个空文件。

log4net没有';t写入文件

您缺少布局:

<layout type ...>
    <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>

当然,你可以随心所欲地进行布局,这只是一个例子。

迈克尔的建议应该有效,但如果仍然无效,那么你可以尝试添加

 <level value="INFO" />

在您的<root>标签

    <root>
      <priority value="ALL" />
      <level value="INFO" />
      <appender-ref ref="LogFileAppender" />
    </root>

遇到了与您相同的问题,遵循了相同的教程。一个答案可以帮助其他人在未来使用它。使用此配置:

<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
</configSections>
<log4net>
  <root>
    <level value="DEBUG" />
    <appender-ref ref="LogFileAppender" />
  </root>
  <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender" >
    <param name="File" value="log-file.txt" />
    <param name="AppendToFile" value="true" />
    <rollingStyle value="Size" />
    <maxSizeRollBackups value="10" />
    <maximumFileSize value="10MB" />
    <staticLogFileName value="true" />
    <layout type="log4net.Layout.PatternLayout">
    <param name="ConversionPattern" value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
    </layout>
  </appender>
</log4net>