0

以下是 log4net 的配置文件中编写的 appender

<appender name="RollingFileAppenderForError" type="log4net.Appender.RollingFileAppender">
    <file type="log4net.Util.PatternString" value="D:\WEB\LOGs\%date{yyyyMMdd}\"/>
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
    <appendToFile value="true"/>
    <rollingStyle value="Composite"/>
    <datePattern value="lo\gs_yyyyMMdd.lo\g"/>
    <maxSizeRollBackups value="50"/>
    <maximumFileSize value="1MB"/>
    <staticLogFileName value="false"/>
    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="[%date{yyyy-MM-dd HH:mm:ss, fff}]  [%property{ServiceTxnID}]  [%property{TxnRequestID}]  %-5level %logger{2} %ndc - %newline Exception: %message - %exception %newline "/>
    </layout>
    <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="DEBUG" />
        <levelMax value="FATAL" />
    </filter>
</appender>

这里的问题是,在本地和 QA 环境中,log4net 将日志文件写入正确的文件夹(每天创建新文件夹),但在生产环境中,它将日志文件写入错误的文件夹中

在第 20130706 天 (YYYYMMDD) 的文件夹中,写入 logs_20130706.log 和 logs_20130707.log 文件。在文件夹 20130707 中,我们可以看到文件 logs_20130707.log 和 logs_20130708.log。

我无法准确地解决我们做错的地方。如果有人能在这方面帮助我,那就太好了。

4

1 回答 1

0

我猜文件类型属性没有像 datePattern 那样频繁地重新计算,你可以试试这个:

<appender name="RollingFileAppenderForError" type="log4net.Appender.RollingFileAppender">
    <file type="log4net.Util.PatternString" value="D:\WEB\LOGs"/>
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
    <appendToFile value="true"/>
    <rollingStyle value="Composite"/>
    <datePattern value="yyyyMMdd\\\\'logs_'yyyyMMdd'.log'"/>
....
</appender>
于 2013-07-08T08:34:36.527 回答