Можно ли настроить log4j для создания нового файла при каждом запуске приложения?
Например, при первом запуске приложения (или сразу после того, как я удаляю каталог /logs ), я хочу, чтобы log4j записывал журналы приложений в файл с именем log.0. Затем я выхожу из приложения и перезапускаю его, я хочу, чтобы журналы записывались в log.1. И так далее.
Я хотел бы сохранить это в файле конфигурации, хотя, если я не могу, я думаю, что всегда мог это сделать в своем приложении, когда установлен log4j.
Возможно ли это? Если да, то как?
Ответы
Ответ 1
Возможно, это то, что вы ищете
http://veerasundar.com/blog/2009/08/how-to-create-a-new-log-file-for-each-time-the-application-runs/
** Изменить: ** У меня есть еще одно решение!
Но не знаю, работает ли это или нет, но вы можете попробовать
http://www.mail-archive.com/[email protected]/msg02132.html
Ответ 2
Решение с log4j2:
<RollingFile name="RollingFile" fileName="${log-path}/GScraper.log"
filePattern="${log-path}/GScraper_%d{yyyy-MM-dd}_%i.log">
<ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout>
<pattern>%level\t%d{yyyy-MM-dd HH:mm:ss} %c: %m%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
<SizeBasedTriggeringPolicy size="32 MB" />
<OnStartupTriggeringPolicy/>
</Policies>
</RollingFile>
Примечание OnStartupTriggeringPolicy и % i в filePattern. Таким образом, Log4j создаст новый файл журнала с индексом при каждом запуске приложения.
Ответ 3
См. руководство по регистрации на уникально названные файлы (по метке времени).
Ответ 4
Сверху моей головы я не думаю, что это возможно с помощью Log4j. Возможно, когда вы закроете приложение, вы можете переименовать файл .log, так что при следующем запуске будет создан новый файл журнала.