log4net的生成错误日志文件名 [英] Log4net generating wrong log file name
问题描述
我要创建日志文件名与以下模式:
I want to create log files names with the following pattern:
SBRF_20120820.log
SBRF_20120821.log
SBRF_20120822.log
SBRF_20120823.log
在换句话说,为每个天的新文件。所以,我创建了以下配置做到这一点:
In other words, create a new file for each day. So, I create the following configuration to do that:
<log4net>
<appender name="FileAppender" type="log4net.Appender.RollingFileAppender, log4net">
<file type="log4net.Util.PatternString" value="Logs/SBRF_%date{yyyyMMdd}.log" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level - %message%newline" />
</layout>
</appender>
<logger name="LogEmArquivo">
<level value="INFO" />
<appender-ref ref="FileAppender" />
</logger>
</log4net>
当我运行该程序,今天例如,文件 SBRF_20120823.log
将被创建。但在随后的日子里的日志保存在 SBRF_20120823.log
写入文件,并创建的文件是:
When I run the program, today for example, the file SBRF_20120823.log
will be created. But in the following days the log keeps to write in the SBRF_20120823.log
file, and the files that are created are:
SBRF_20120823.log.2012-08-23
SBRF_20120823.log.2012-08-24
SBRF_20120823.log.2012-08-25
SBRF_20120823.log.2012-08-26
如果我运行该程序,明天将要创建的文件是:
And if I run the program tomorrow, the files that will be created are:
SBRF_20120824.log.2012-08-24
SBRF_20120824.log.2012-08-25
SBRF_20120824.log.2012-08-26
SBRF_20120824.log.2012-08-27
为什么呢?
Why?
推荐答案
您不要把日期模式在&lt;文件&gt; - 这是在文件名的静态部分。你需要把它变成的&lt; datePattern&GT;
You do not put the date pattern in the <file> - that is the static part of the filename. You need to put it into the <datePattern>.
此外,如果您使用的是log4net的1.2.11,您可以使用&lt; preserveLogFileNameExtension&GT;这使该datePattern上当前文件也
Also, if you are using log4net 1.2.11, you can use <preserveLogFileNameExtension> which puts the datePattern on the current file also.
我觉得这是你想要你的配置是什么样子:
I think this is what you want your configuration to look like:
<log4net>
<appender name="FileAppender" type="log4net.Appender.RollingFileAppender, log4net">
<file type="log4net.Util.PatternString" value="Logs/SBRF_.log"/>
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd" />
<preserveLogFileNameExtension value="true"/>
<staticLogFileName value="false" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level - %message%newline" />
</layout>
</appender>
<logger name="LogEmArquivo">
<level value="INFO" />
<appender-ref ref="FileAppender" />
</logger>
这篇关于log4net的生成错误日志文件名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!