我们在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创建新的日志文件,我们需要它是“复合”。