Log4Net:滚动文件appender,定义扩展

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

但问题是,我似乎无法find任何方式来添加.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> 

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

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

其他答案转义“日志”中的“g”,因为“g”是datePattern中的特殊字符。 这没有错,但我更喜欢用单引号将整个非date字符集合包装起来,如下所示:

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

这给出了相同的结果,但更容易pipe理。 这样,我不必回想哪个特定的字符是特殊的datePattern(该列表是漫长而多变的)。 如果我忘记了一个字符,那么我就不会冒着写文件名的风险。 他们都很好地逃脱集体。

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

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

将“.lo \ g”添加到datepattern的末尾

这是我的日志文件xmlconfiguration。 日志文件的path在“文件”标签中

这将在我的网站的path文件夹中的“LogFiles”文件夹下创build一个日志文件“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>