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

log4net RollingFileAppender,文件名类型为Name.Date.ProcessId.log.N,log4net,log4net-configuration,Log4net,Log4net Configuration,我们正在asp.net服务中使用Log4Net,希望日志文件采用以下格式: Name.Date.ProcessId.log.N e、 g.服务编号20150123-09.776243.log.0 如果达到日期或大小限制,RollingFileAppender需要采用复合样式才能创建新的日志文件 先有processid,然后是日期,这很容易。我们目前有,但更喜欢先有日期,这样更容易先按日期排序 我尝试过各种配置,但最接近的配置是 Name.yyyyMMdd HH.ProcessId.HH.log.

我们正在asp.net服务中使用Log4Net,希望日志文件采用以下格式:
Name.Date.ProcessId.log.N
e、 g.服务编号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无效
但这将是理想的方式,因为我们目前每小时都有一个新的日志文件(因为我们当前的日期模式yyyyMMdd HH)。DatePattern中的变量可能不起作用。

将RollingStyle设置为“Size”可以使上述模式正常工作,但随后将根据大小而不是大小和日期创建新的日志文件,我们需要它是“复合的”。

不确定我是否理解正确,但您是否尝试过这样的操作:%Date{yyyyymmdd}。%processid”。%Date{HH}