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

使用log4net在应用程序运行期间创建多个日志文件,log4net,Log4net,我在一个c#windows服务中使用log4net,所以主应用程序每次都运行。我将log4net配置为登录到特定于日期的目录。在这个目录中,log4net创建了一个日志文件,文件名中有一个时间戳。这个很好用。问题是,它只在windows服务重新启动时创建一个新的日志文件。这会导致日志文件变得非常大,特别是如果服务运行了几天 问题是: 是否有可能在我的代码中强制log4net从一个新的日志文件开始 这是我的log4net配置: <log4net> <appender na

我在一个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>

致意


Emu

我认为您的问题已通过RollingFileAppender解决:

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


希望能有所帮助。

除了创建最大大小的文件外,您还可以使用RollingFileAppender每天创建一个新文件