我需要以每天获取一个日志文件的方式为log4net定义一个appender,但是文件的总数限制为,比方说,30。这就是我想只保留不旧的日志然后30天,删除旧的。
我尝试过使用RollingFileAppender,但似乎是specifying a limit of files to keep is not supported。您知道我可以使用的替代解决方案吗?
答案 0 :(得分:2)
答案 1 :(得分:1)
编写C#WinService或在应用程序中创建一个BackgroundWorker,它将每天监视一次旧日志文件并将其删除。您可以将FileSystemWatcher用于此范围。
或者只测试运行新日志文件的每个应用程序并删除它。
另一个选项是不在本地存储文件,而是通过网络(邮件,远程服务器等)发送文件。
答案 2 :(得分:1)
你可以使用'复合'日志类型吗?更多信息:http://logging.apache.org/log4net/release/config-examples.html
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="logfile" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<datePattern value="yyyyMMdd" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="1MB" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>