如何在log4net中每天保留一个日志文件?

时间:2017-03-21 03:27:47

标签: c# logging log4net

我继承了一个应用程序,我需要保留超过一天的日志。 它正在使用log4net进行日志记录,我在下面有log4net.config个文件内容:

<?xml version="1.0"?>

<log4net>
  <appender name="Console" type="log4net.Appender.ConsoleAppender">
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
    </layout>
  </appender>

  <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="logs\connector.log" />
    <appendToFile value="true" />
    <rollingStyle value="Date" />
    <datePattern value="yyyyMMdd" />
    <maxSizeRollBackups value="10" />
    <maximumFileSize value="5MB" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
    </layout>
  </appender>
  <root>
    <level value="INFO" />
    <appender-ref ref="Console" />
    <appender-ref ref="RollingFileAppender" />
  </root>
</log4net>

日志目录中的文件永远不会有日期,并且始终称为connector.log。 它的创建日期是很久以前的,所以我认为它只是在文件结束到新的一天时清空文件(并且该文件中的日志时间戳证明了这一点)。

我如何更改它以使其每天保留一个日志文件。

1 个答案:

答案 0 :(得分:0)

<appender name="SysAppender" type="log4net.Appender.RollingFileAppender,log4net">
  <param name="File" value="App_Data/" />
  <param name="AppendToFile" value="true" />
  <param name="RollingStyle" value="Date" />
  <param name="DatePattern" value="&quot;Logs_&quot;yyyyMMdd&quot;.htm&quot;" />
  <param name="StaticLogFileName" value="false" />
  <layout type="log4net.Layout.PatternLayout">
    <param name="ConversionPattern" value="&lt;HR COLOR=red&gt;%n异常时间:%d [%t] &lt;BR&gt;%n异常级别:%-5p &lt;BR&gt;%n异 常 类:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n &lt;HR Size=1&gt;" />
    <!--<conversionPattern value="%newline %n记录时间:%date %newline %n 线程ID:[%thread] %n日志级别:  %-5level %n跟踪描述:%message%newline %n"/>-->
  </layout>
</appender>

无需定义日志文件的名称