2

我有一个 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");

当我在那之后打开文件时 -没有写入任何内容。这只是一个空文件。

4

3 回答 3

1

您缺少布局:

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

您当然可以根据需要制作任何布局,这只是一个示例。

于 2013-07-25T12:43:09.960 回答
0

和你有同样的问题,遵循相同的教程。答案可以帮助其他人将来使用它。使用此配置:

<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>
于 2015-01-26T14:00:50.773 回答
0

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

 <level value="INFO" />

在你的<root>标签中

    <root>
      <priority value="ALL" />
      <level value="INFO" />
      <appender-ref ref="LogFileAppender" />
    </root>
于 2013-07-25T13:18:38.527 回答