Log4Net:Rolling File appender,定义扩展

use*_*964 66 log4net config rollingfileappender

我希望我的日志文件看起来像这样: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>
Run Code Online (Sandbox Code Playgroud)

Cra*_*ker 112

其他答案逃避"log"中的"g",因为"g"是datePattern中的特殊字符.这没有错,但我更喜欢将整个非日期字符集包装在单引号中,如下所示:

<datePattern value="yyyy-MM-dd'.log'" />
Run Code Online (Sandbox Code Playgroud)

这给出了相同的结果,但我更容易管理.这样,我不必回忆起datePattern特有的特定字符(列表很长且多变).如果我忘记了一个字符,那么我就不会冒险使用我的文件名; 他们都很好地逃脱了.

  • 我也更喜欢这种方法. (3认同)
  • @ssmith:从`<file />`中删除`.log`.Log4Net将日期模式附加到文件值上,因此您需要前者的文件扩展名. (2认同)

gre*_*ker 55

尝试将.log扩展名添加到日期模式中,然后将其从文件属性中删除.

<datePattern value="yyyy-MM-dd.lo\g"/>
...
<staticLogFileName value="false" />
Run Code Online (Sandbox Code Playgroud)

  • 还记得添加<staticLogFileName value ="false"/> (7认同)

小智 18

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

<file value="LogFiles/.log"/>
<preserveLogFileNameExtension value="true" />
<datePattern value="yyyy-MM-dd" />
Run Code Online (Sandbox Code Playgroud)


Dev*_*inB 8

将".lo\g"添加到日期模式的末尾