log4net给我留下了很多.1 .2 .3文件

时间:2012-02-09 09:34:38

标签: log4net

log4net.config如下所示 我只希望日志文件每天滚动到一个新文件。但它在一天内翻了很多次,扩展名为.1.2.3 ...
我只记录了一些活动,因此日志文件的文件大小应该很小。通常我一天不会超过100行日志。

<appender name="DebugRollingFile" type="log4net.Appender.RollingFileAppender,log4net">
  <param name="File" value="D:\\log\\hdpca.bill.debug.log" />
  <param name="AppendToFile" value="false" />
  <param name="RollingStyle" value="Date" />
  <param name="StaticLogFileName" value="true" />
  <param name="MaxFileSize" value="10240" />
  <param name="MaxSizeRollBackups" value="100" />
  <param name="DatePattern" value="yyyyMMdd&quot;.log&quot;" />
  <layout type="log4net.Layout.PatternLayout">
    <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
    <param name="Header" value="&#13;&#10;----------------------header--------------------------&#13;&#10;" />
    <param name="Footer" value="&#13;&#10;----------------------footer--------------------------&#13;&#10;" />
  </layout>
  <filter type="log4net.Filter.LevelRangeFilter">
    <param name="LevelMin" value="DEBUG" />
    <param name="LevelMax" value="DEBUG" />
  </filter>
</appender>

2 个答案:

答案 0 :(得分:2)

您需要将appendToFile设置为 true ;否则你将覆盖你的日志文件。

您指定的其他属性也存在一些问题。如果您希望按日期滚动日志,则需要删除MaxFileSize,并且在按日期滚动日志时无法指定MaxSizeRollBackups。在配置下面给出配置。它应该解决你的问题。

所以,简而言之:

  1. appendToFile = true
  2. 删除MaxFileSize
  3. 删除MaxSizeRollBackups
  4. 从您的文件属性中删除“.log”并将其保留在DatePattern上(这将确保您获得{date} .log而不是.log {date} .log)
  5. 示例配置:

    <appender name="DebugRollingFile" type="log4net.Appender.RollingFileAppender">
        <file value="D:\\log\\hdpca.bill.debug"/>
        <appendToFile value="true"/>
        <rollingStyle value="Date"/>
        <datePattern value="yyyyMMdd.lo\g" />
        <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
            <param name="Header" value="&#13;&#10;----------------------header--------------------------&#13;&#10;" />
            <param name="Footer" value="&#13;&#10;----------------------footer--------------------------&#13;&#10;" />
        </layout>
        <filter type="log4net.Filter.LevelRangeFilter">
            <param name="LevelMin" value="DEBUG" />
            <param name="LevelMax" value="DEBUG" />
        </filter>
    </appender>
    

答案 1 :(得分:-1)

我建议使用'MaximumFileSize'而不是'MaxFileSize'属性,因为它允许您使用suffixes:“KB”,“MB”或“GB”。

<maximumFileSize value="10MB" />

您的配置将文件大小设置为10KB(实际上并不多)。

<强>更新 也许你的日期模式就是问题所在。我不确定在那里有转义序列是否合适。试试这个:

<datePattern value="yyyyMMdd'.log'" />

甚至

<datePattern value="yyyyMMdd" />