2012-02-09 106 views
1

log4net.config如下所示。
我只想让日志文件每天滚动到一个新文件。但它在一天内转了好多次,延长了.1,.2,.3 ...
我只记录了一些活动,所以日志文件应该是小的文件大小。通常我在一天内不会有超过100行的日志。log4net给我很多.1 .2 .3文件

<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> 
+0

你有什么试图解决它?您是否阅读过滚动文件appender的文档? – 2012-02-09 09:39:15

+0

如果您试图按日期滚动此日志,为何要指定MaxFileSize? – gregwhitaker 2012-02-09 12:30:31

回答

2

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

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

因此,简而言之:

  1. appendToFile =真
  2. 删除MAXFILESIZE
  3. 删除MaxSizeRollBackups
  4. 删除 “.LOG” 从文件属性,离开DatePattern的一个(这将请确保您获得{date} .log而不是.log {date} .log)

Sample Configu配给:

<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> 
+0

我正在尝试这个。在'中为什么是\?我起初以为你输错了,但事实证明你是对的。 – hbrls 2012-02-10 10:43:59

+0

\因为g是datepattern中的特殊字符,所以\只是逃避了g。这和像yyyyMMdd'.log这样引用.log相同。 – gregwhitaker 2012-02-10 13:21:41

-1

我建议使用'MaximumFileSize'而不是'MaxFileSize'财产,因为它可以让你使用suffixes:“KB”,“MB”或“GB”。

<maximumFileSize value="10MB" /> 

您的配置将文件大小设置为10KB(并不是真的)。

UPDATE: 也许你datepattern是问题。我不确定在那里是否有好转序列。试试这个:

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

甚至

<datePattern value="yyyyMMdd" /> 
+0

我会试试。但是我的1.2文件从未达到10KB。 – hbrls 2012-02-09 10:44:50