使用log4net在应用程序运行期间创建多个日志文件

时间:2014-03-07 07:20:10

标签: log4net

我在c#windows服务中使用log4net,因此主应用程序每次都运行。我配置了log4net以登录日期特定目录。在此目录中,log4net创建一个日志文件,文件名中包含时间戳。这很好用。探测器是,当Windows服务重新启动时,它只会创建一个新的日志文件。这会导致日志文件变得非常大,特别是如果服务运行了几天。

问题是:

是否有可能强制log4net以我的代码中的新日志文件开始。

这是我的log4net配置:

<log4net>
    <appender name="FileAppender" type="log4net.Appender.FileAppender">
        <file type="log4net.Util.PatternString" value="${ProgramData}\Sirona\Log\AcqSrv\%date{yyMMdd}\AcqSrvAll-%date{HHmmss}.log" />
        <appendToFile value="true" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%2thread] [%-5level] [%logger] - %message%newline" />
        </layout>
    </appender>
    <root>
        <level value="ALL" />
        <appender-ref ref="FileAppender" />
    </root>     <!-- Do not want NHibernate log -->     
</log4net>

祝你好运

鸸鹋

1 个答案:

答案 0 :(得分:1)

我认为您的问题已由RollingFileAppender解决:http://logging.apache.org/log4net/release/config-examples.html http://logging.apache.org/log4net/release/sdk/log4net.Appender.RollingFileAppender.html

它与FileAppender完全相同,但一旦达到最大大小(可配置),它就会创建另一个日志文件。 您还可以指示它仅保留最新的X日志文件。

希望它有所帮助。