Вы можете использовать ExternallyRolledFileAppender
и Roller
классы пролонгировать файл журнала при запуске приложения.
Вот пример класса:
import org.apache.log4j.Logger;
import org.apache.log4j.varia.Roller;
public class Test {
private static final Logger log = Logger.getLogger(Test.class);
public static void main(final String[] args) {
Roller.main(new String[] {"localhost", "9999"});
log.debug("Started application!");
}
}
И пример log4j.properties
файла:
log4j.appender.file=org.apache.log4j.varia.ExternallyRolledFileAppender
log4j.appender.file.File=app.log
log4j.appender.file.Port=9999
log4j.appender.file.MaxBackupIndex=5
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss.SSS}] %-5p: %t: %c: %m%n
log4j.rootLogger=DEBUG, file
ли внять предупреждение в ExternallyRolledFileAppender
:
Обратите внимание, что инициатор не прошел проверку подлинности. Любой может вызвать опрокидывание. В производственных средах рекомендуется добавить некоторую защиту, чтобы предотвратить нежелательные опрокидывания.
Если это не подходит для ваших нужд, это должно быть тривиально, чтобы создать свою собственную аналогичную реализацию Appender
.
Я хочу, чтобы мой код был «чистым», поэтому я удалил всю конфигурацию для log4j в XML-файл раньше. Однако я попытался использовать setFile() как единственную программную конфигурацию и отлично работает. – EsTeGe