Знаете ли вы, что приложение log4net работает с датой, но давайте ограничим общее количество файлов? - PullRequest
2 голосов
/ 14 января 2010

Мне нужно определить appender для log4net таким образом, чтобы я получал один файл журнала на каждый день, но общее количество файлов ограничено, скажем, до 30. То есть я хочу сохранить только журналы не старше затем через 30 дней удалите старые.

Я пытался сделать это с RollingFileAppender, но, похоже, указание ограничения для файлов не поддерживается . Знаете ли вы альтернативное решение, которое я мог бы использовать?

Ответы [ 3 ]

2 голосов
/ 12 марта 2010

Я провел некоторое время, изучая это несколько месяцев назад. v1.2.10 не поддерживает удаление старых файлов журналов, основанных на переходе по дате. Это находится в списке задач для следующего выпуска. Я взял исходный код и добавил функциональность сам, и разместил его для других, если они заинтересованы. Проблему и патч можно найти по адресу https://issues.apache.org/jira/browse/LOG4NET-27.

1 голос
/ 15 января 2010

можете ли вы использовать тип составного журнала? больше здесь: 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>

1 голос
/ 14 января 2010

Напишите C # WinService или создайте в своем приложении BackgroundWorker, который будет раз в день отслеживать ваши старые файлы журналов и удалять его.Вы можете использовать FileSystemWatcher для этой области.

Или просто протестируйте в каждом приложении, работающем на наличие новых файлов журнала, и удалите его.

Другой вариант будет делатьне хранить файлы локально, но отправлять их по сети (почта, удаленный сервер и т. д.).

См. также дубликаты вопросов: здесь и здесь .

...