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