Можно ли настроить log4j для создания нового файла при каждом запуске приложения?
Например, при первом запуске приложения (или сразу после удаления каталога /logs) я хочу, чтобы log4j записал журналы приложения в файл с именем log.0. Затем я выхожу из приложения и перезапускаю его, я хочу, чтобы журналы были записаны в журнал.1. И так далее.
Я хотел бы сохранить это в файле конфигурации, хотя если я не могу, я думаю, что всегда могу сделать это в моем приложении, когда log4j настроен.
Возможно ли это? Если да, то как?
4 ответов:
Может быть, это то, что вы ищете
Http://veerasundar.com/blog/2009/08/how-to-create-a-new-log-file-for-each-time-the-application-runs/
**Edit: * * у меня есть еще одно решение! Но понятия не имею, работает это или нет,но попробовать можно http://www.mail-archive.com/[email protected]/msg02132.html
Решение с 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 будет создавать новый файл журнала с индексом при каждом запуске приложения.
Смотрите руководство logback пофайлам с уникальными именами (по метке времени) .
С верхней части моей головы я не думаю, что это возможно с помощью Log4j. возможно, когда вы закрыли приложение, вы могли бы переименовать его .таким образом, при следующем запуске создается новый файл журнала.
Comments