Log4net appender 文件名问题

10

我有一个像这样设置的appender

<appender name="Scheduler_Appender" type="log4net.Appender.RollingFileAppender">
   <file value="c:\temp\ApplicationLog.txt"/>
   <rollingStyle value="Date"/>
   <datePattern value="yyyyMMdd"/>
   <appendToFile value="true"/>
   <staticLogFileName value="true"/>
   <layout type="MinLayout">
    <locationInfo value="true"/>
   </layout>
</appender>

当日志文件首次创建时,文件名应为ApplicationLog.txt,这是正确的。然而,当记录滚动时,生成的文件名是ApplicationLog.txt20100323(例如),而不是ApplicationLog20100323.txt。如何更改配置,以便将文件滚动到[FileName] [Date] .[ext],而不是[FileName]. [ext] [Date]?谢谢。
更新: 我尝试了一些实验,但现在出于某种原因生成的文件扩展名是.pxp...
<appender name="Scheduler_Appender" type="log4net.Appender.RollingFileAppender">
            <file value="c:\temp\Scheduler"/>
            <rollingStyle value="Date"/>
            <datePattern value="yyyyMMdd.txt"/>
            <appendToFile value="true"/>
            <staticLogFileName value="false"/>
            <layout type="MinLayout">

            </layout>
        </appender>

关于“pxp”扩展名,也许“txt”的“t”被解释了。我遇到了“log”扩展名的问题。我转义了“g”,现在没问题了(“yyyyMMdd-HHmmss.lo\g”)。 - GôTô
3个回答

25

我认为你需要的设置是PreserveLogFileNameExtension:

<appender name="Scheduler_Appender" type="log4net.Appender.RollingFileAppender">
     ...
     <PreserveLogFileNameExtension value="true" />

注意:当前发布的二进制版本(1.2.10.0)中没有提供此属性,因此您需要获取最新的源代码并从那里开始。


7
<appender name="cheduler_Appender" type="log4net.Appender.RollingFileAppender">
            <file value="c:\temp\Scheduler"/>
            <rollingStyle value="Date"/>
            <datePattern value="yyyyMMdd'.txt'"/>
            <appendToFile value="true"/>
            <staticLogFileName value="false"/>
            <layout type="MinLayout">

            </layout>
        </appender>

这样做您当前的日志文件就不会有扩展名了,对吧? - Stefan Egli
是的,它确实很惊人 - 这是因为 staticLogFileName 被设置为 false。但我知道你的意思,这是我最后一次使用 log4net,下次我会用 nLog。 - JL.
这篇文章中有一个帮助类,其中包含一个查找文件名的方法 https://dev59.com/OF3Ua4cB1Zd3GeqP-kH4#11694426 - aked

4

试试这个,它会根据当前日期创建日志文件

日志文件名(根据需要更改格式):“log-[15-02-2017].[15.57.10].log”

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <file type="log4net.Util.PatternString">
        <conversionPattern value="log-[%date{dd-MM-yyyy}].[%date{HH.mm.ss}].log" />
      </file>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%d [%t] %-5p [%logger:%L] - %m%n" />
      </layout>
    </appender>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接