Я использую logback, настроенный в файле logback.groovy
, для управления журналами для моих приложений. Я хочу:Logback FileAppender, который использует один файл журнала и удаляет старые файлы журнала
- Создание файлов журналов, отмеченных при запуске приложения, и сохраняемых как один файл журнала на весь срок службы приложения. (У нас может быть несколько экземпляров приложения, работающего одновременно, или нескольких экземпляров, выполняемых в течение дня, и они могут выполняться в течение нескольких дней.)
- Храните чистый каталог файлов журналов, такой как журналы, которые старше определенного периода.
Достижение первой предложил бы использовать FileAppender
, по следующим направлениям - однако, это не удаляет старые файлы журналов:
appender("FILE", FileAppender) {
file = "path/to/log/dir/log_file_${date}.log"
}
Достижение второй предложил бы использовать RollingFileAppender
с TimeBasedRollingPolicy
, по следующим строкам - который хранит файлы журнала в течение 7 дней. Тем не менее, это будет использовать один файл для регистрации всех экземпляров приложения на определенную дату, независимо от того, когда приложение было работать:
appender("FILE", RollingFileAppender) {
rollingPolicy(TimeBasedRollingPolicy) {
fileNamePattern = "path/to/log/dir/log_file_%d{yyyyMMdd}.log"
maxHistory = 7;
}
}
Как я могу иметь свой кусок пирога и съесть его - то есть получить преимущество один файл журнала на один запуск приложения (с отметкой времени запуска), но с историческими преимуществами очистки RollingFileAppender
/TimeBasedRollingPolicy
?