log4net的生成错误日志文件名 [英] Log4net generating wrong log file name

查看:343
本文介绍了log4net的生成错误日志文件名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要创建日志文件名与以下模式:

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆