log4net RollingFileAppender,Name.Date.ProcessId.log.N类型的文件名

时间:2015-01-23 15:24:54

标签: log4net log4net-configuration

我们在asp.net服务中使用Log4Net,并希望日志文件采用以下格式:
Name.Date.ProcessId.log.N
例如Service.20150123-09.776243.log.0

如果达到日期或大小约束,RollingFileAppender必须是复合样式才能创建新的日志文件。

首先拥有processid,然后是日期,这很容易。我们目前有这个,但我希望首先使用日期,以便更容易按日期排序。

我尝试了各种配置,但最接近我能想到的是 Name.yyyyMMdd-HH.ProcessId。的 HH .log.N

<appender name="ServiceLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <file type="log4net.Util.PatternString">
        <conversionPattern value="C:\Logs\Service.%date{yyyyMMdd-HH}.%processid" />
    </file>
    <param name="DatePattern"  value=".HH.lo\g" />
    <param name="AppendToFile" value="true" />
    <param name="RollingStyle" value="Composite" />
    <param name="StaticLogFileName" value="false" />
    <param name="MaximumFileSize" value="10MB" />
    <param name="CountDirection" value="1" />
    <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d{MM/dd/yyyy HH:mm:ss fff},%X{Method},%X{TransID},%X{UserID},%X{DeviceID},%X{PID},%X{TH1},%m%n"/>
    </layout>
  </appender>

我需要在DatePattern中使用一些有效的日期模式才能使用它。那里不能只有“.lo \ g” 在DatePattern中添加%processid不起作用。
但这是理想的,因为我们目前每小时都有一个新的日志文件(因为我们当前的DatePattern yyyyMMdd-HH)。 DatePattern中的变量可能不起作用 将RollingStyle设置为“Size”使得上面的模式工作,但是然后将根据Size而不是Size和Date创建新的日志文件,我们需要它是“复合”。

0 个答案:

没有答案