我在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>
祝你好运
鸸鹋
答案 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日志文件。
希望它有所帮助。