Log4Net:滚动文件附加程序,定义扩展名


69

我希望我的日志文件看起来像这样:2009-02-13.log

但问题是我似乎找不到任何添加.log扩展名的方法。

我已经尝试了很多东西,但是没有任何帮助。这是我到目前为止的内容:

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="Logs/Log4Net/.log"/>
    <appendToFile value="true"/>
    <rollingStyle value="Date"/>
    <datePattern value="yyyy-MM-dd" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
    </layout>
</appender>

Answers:


59

尝试像这样将.log扩展名添加到日期模式中,然后将其从file属性中删除。

<datePattern value="yyyy-MM-dd.lo\g"/>
...
<staticLogFileName value="false" />

8
还记得添加<staticLogFileName value =“ false” />
Chris Klepeis 2012年

120

由于“ g”是datePattern中的特殊字符,其他答案在“ log”中转义为“ g”。这没错,但是我更喜欢将整个非日期字符集用单引号引起来,如下所示:

<datePattern value="yyyy-MM-dd'.log'" />

这给出了相同的结果,但对我来说更易于管理。这样,我不必回想哪些特定字符对于datePattern来说是特殊的(列表很长且种类繁多)。如果我忘记了一个字符,那么我就不会冒文件名闷的风险。他们都很好地逃脱了。


1
那么,<file />的值是多少?
ssmith 2011年

2
@ssmith:离开关.log<file />。Log4Net将datepattern附加到文件值上,因此您需要在文件名上加上文件扩展名。
Craig Walker

由于我想监视当天的可预测日志文件名,因此我使用文件值= logs / server.log ...然后使用datePattern值,在yyyy之前添加一个句点。当前日志是server.log,然后昨天的日志是server.log.2014-08-13.log ...这不是很理想,但是由于我还没有想办法。

21

log4net现在还提供了一个PreserveLogFileNameExtension属性,该属性可以将您的.log扩展名强制到复合文件名的末尾(包括日期模式和/或大小序列号):

<file value="LogFiles/.log"/>
<preserveLogFileNameExtension value="true" />
<datePattern value="yyyy-MM-dd" />

只能在较新的版本上吗?我无法在我的系统上使用该参数。最后我有文件值为使用.LOG两次,一次,并在datePattern :(另一个时间
太阳

1
我相信它是在1.2.12中添加的-Christopher
G. Lewis

8

在您的日期模式的末尾添加“ .lo \ g”


4

这是我的日志文件xml配置。日志文件的路径在“文件”标签中

这将在我网站的路径文件夹中的“ LogFiles”文件夹下创建一个日志文件“ 2012-11-22.log”。

注意:确保首先存在该文件夹!

<?xml version="1.0"?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,     log4net"/>
  </configSections>
  <log4net>
    <root>
      <level value="INFO"/>
      <appender-ref ref="RollingFileAppender"/>
    </root>
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="LogFiles/"/>
      <appendToFile value="true"/>
      <rollingStyle value="Date"/>
      <maxSizeRollBackups value="5"/>
      <maximumFileSize value="10MB"/>
      <datePattern value="yyyy-MM-dd'.log'" />
      <staticLogFileName value="false"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %level %logger - %message%newline%exception"/>
      </layout>
    </appender>
  </log4net>
</configuration>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.