首页 新闻 赞助 找找看

log4net配置的奇怪问题

0
悬赏园豆:10 [已解决问题] 解决于 2014-03-26 12:23

在logger.config文件中是这样配置的:

    <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender, log4net" >
      <param name="File" value="logs/log-" />
      <param name="RollingStyle" value="Composite"/>
      <param name="AppendToFile" value="true" />
      <param name="DatePattern" value="yyyy-MM-dd&quot;.log&quot;"/>
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p %c [%M]  - %m%n" />
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="WARN" />
        <param name="LevelMax" value="FATAL" />
      </filter>
    </appender>

问题出在输出的文件名上,如果按照上面这样配置,最后输出的日志文件名为"log-"

但如果把 <param name="DatePattern" value="yyyy-MM-dd&quot;.log&quot;"/> 这一行中的MM改为mm,又可以输出正常的文件名,只是本来的月份变成了分钟。而且除了这种配置方法之外所有的写法全都无效,日志文件名一直是"log-"

我哪里配得不对呢?

飞鸟_Asuka的主页 飞鸟_Asuka | 菜鸟二级 | 园豆:209
提问于:2014-03-26 11:17
< >
分享
最佳答案
1
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <file value="Logs\" />
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="INFO" />
        <levelMax value="FATAL" />
      </filter>
      <appendToFile value="true" />
      <rollingStyle value="Composite" />
      <datePattern value="yyyyMM&quot;.log&quot;" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="10MB" />
      <staticLogFileName value="false" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger %message%newline" />
      </layout>
    </appender>

参考我这个

收获园豆:10
李永京 | 老鸟四级 |园豆:3114 | 2014-03-26 11:51

用你的这段配置是可以的。但是用我的配置文件,第一次记录的文件名为什么不正常的原因还是不清楚

飞鸟_Asuka | 园豆:209 (菜鸟二级) | 2014-03-26 11:57

@飞鸟_Asuka: ...<staticLogFileName value="false" />和锁模式你没设置

李永京 | 园豆:3114 (老鸟四级) | 2014-03-26 12:20

@李永京: 嗯,设置好以后果然就正常了,非常感谢

飞鸟_Asuka | 园豆:209 (菜鸟二级) | 2014-03-26 12:23
其他回答(1)
0

 <param name="DatePattern" value="yyyy-MM-dd.log"/>

Launcher | 园豆:45045 (高人七级) | 2014-03-26 11:30

又发现一个问题

我把这一行改为

<param name="DatePattern" value="yyyy-MM-dd-HH-mm&quot;.log&quot;"/>

第一次运行程序输出的日志文件名是"log-"

过一分钟后第二次运行程序输出的日志文件名就变成了"log-2014-03-26-11-32.log"

这又是为什么呢?为什么第一次运行程序时文件名不正常呢?

 

而且按照你的答案改了以后文件名变成了"log-2014-03-26-11-32.loA.D"

 

另外虽然日志文件名对了,但是在同一分钟内多次运行程序没有追加日志?

支持(0) 反对(0) 飞鸟_Asuka | 园豆:209 (菜鸟二级) | 2014-03-26 11:32

@Launcher: 我就是看了这篇文章学习的啊,还是不知道为什么第一次运行程序日志文件名会不正常

支持(0) 反对(0) 飞鸟_Asuka | 园豆:209 (菜鸟二级) | 2014-03-26 11:46

@飞鸟_Asuka: 升级下你的 log4net 呢!说实话我没用过,我用的是 C++ 版的,对于 RollingFileAppender 没有此方式,我是自己写的 Appender。

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2014-03-26 11:50

@Launcher: 我直接从NuGet上获取的版本1.2.13.0

支持(0) 反对(0) 飞鸟_Asuka | 园豆:209 (菜鸟二级) | 2014-03-26 11:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册