Log4net在文件名中使用date滚动每日文件名

我想有文件命名为例如:

dd.mm.yyyy.log

这怎么可能与log4net?

在您的Log4netconfiguration文件中,对RollingFileAppender使用以下参数:

<param name="DatePattern" value="dd.MM.yyyy'.log'" /> 
 <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/> <file value="logs\" /> <datePattern value="dd.MM.yyyy'.log'" /> <staticLogFileName value="false" /> <appendToFile value="true" /> <rollingStyle value="Composite" /> <maxSizeRollBackups value="10" /> <maximumFileSize value="5MB" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> </layout> </appender> 

对于RollingLogFileAppender,您还需要这些元素和值:

 <rollingStyle value="Date" /> <staticLogFileName value="false" /> 

使用Log4Net 1.2.13,我们使用下面的configuration设置来允许文件名中的date时间。

<file type="log4net.Util.PatternString" value="E:/logname-%utcdate{yyyy-MM-dd}.txt" />

它将按照以下约定提供文件: logname-2015-04-17.txt

有了这个,通常最好有以下几点来确保你每天保持1个日志。

 <rollingStyle value="Date" /> <datePattern value="yyyyMMdd" /> 

如果文件的大小是一个问题,下面允许500个5MB大小的文件,直到新的一天产生。 CountDirection允许不再最新的文件的升序或降序编号。

  <maxSizeRollBackups value="500" /> <maximumFileSize value="5MB" /> <rollingStyle value="Composite" /> <datePattern value="yyyyMMdd" /> <CountDirection value="1"/> <staticLogFileName value="true" /> 

我结束了使用(注意'.log'文件名和'myfilename_'周围的单引号):

  <rollingStyle value="Date" /> <datePattern value="'myfilename_'yyyy-MM-dd"/> <preserveLogFileNameExtension value="true" /> <staticLogFileName value="false" /> <file type="log4net.Util.PatternString" value="c:\\Logs\\.log" /> 

这给了我:

 myfilename_2015-09-22.log myfilename_2015-09-23.log . . 

要保留文件扩展名

 <log4net> <root> <level value="DEBUG"/> <appender-ref ref="RollingLogFileAppender"/> </root> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <file type="log4net.Util.PatternString" value="D:\\LogFolder\\%date{yyyyMM}\\SchT.log" /> <appendToFile value="true" /> <rollingStyle value="Date" /> <maximumFileSize value="30MB" /> <staticLogFileName value="true" /> <preserveLogFileNameExtension value="true"/> <datePattern value="ddMMyyyy" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" /> </layout> </appender> </log4net> 

在之前的响应中的扩展configuration部分

  ... ... <rollingStyle value="Composite" /> ... ... 

列出的作品,但我没有使用

 <staticLogFileName value="false" /> 

。 我认为RollingAppender必须(逻辑上)忽略该设置,因为根据定义,应用程序每次重新启动/重用时都会重新生成文件。 在应用程序启动的每一次,可能对于立即翻转都是重要的。