Can Log4Net Delete Log Files Automatically? [dupli

2019-01-14 16:36发布

问题:

This question already has an answer here:

  • Log4Net: set Max backup files on RollingFileAppender with rolling Date 8 answers

I am using log4net RollingFileAppender in a windows service program written in C#. The number and size of files in logs directory is growing too fast, need cleanup. The configuration is below:

<appender name="Rolling Log" type="log4net.Appender.RollingFileAppender">
<file value="..\logs\MyProgram.%cs{instanceName}.log" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<datePattern value=".yyyy-MM-dd.lo\g" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="150MB" />
<layout type="log4net.Layout.PatternLayout">
  <conversionPattern value="%date [%-5level] %property{remoteUser} [%threadIdentity] %type{1}.%method - %message%newline%exception" />
</layout>

I only want to keep 30 days of logs. How can I configure log4net to delete the logs automatically? If not available through log4net, what solutions would I have?

Thank you in advance.

回答1:

Here is another question from here on SO that asks essentially the same thing: Log4Net: set Max backup files on RollingFileAppender with rolling Date

The consensus was that log4net does not support it directly. One poster says that it has been implemented in log4net's source code repository, but has not been released yet. Another poster shows some code that he uses to cleanup old files periodically.



回答2:

I'm pretty sure that you can't do with the existing appender, although I can't confirm it.

However, I see two options:

  1. Create your own appender, subclassing RollingFileAppender (or, if you want more control, subclass FileAppender). Then change your config file to use that appender (change the appender element).
  2. Create a .bat file that deletes files older than x days (see: Batch file to delete files older than N days). Then create a task in Windows (http://support.microsoft.com/kb/308569) that runs this bat file e.g. every day.


回答3:

This should provide some help. Look for the RollingFileAppender section