използване на log4j за изчистване на файл?

използвам log4j за запис във файл със следния файл със свойства:

log4j.rootLogger=DEBUG, FA

#File Appender
log4j.appender.FA=org.apache.log4j.FileAppender
log4j.appender.FA.File=temp.ppr
log4j.appender.FA.layout=org.apache.log4j.PatternLayout
log4j.appender.FA.layout.ConversionPattern= %m%n

Проблемът ми е, че при всяко изпълнение на моята програма искам да изчистя файла "temp.ppr" и след това да пиша в него ефективно с lo4j? или препоръчвате други решения?

Благодаря


person RanZilber    schedule 23.12.2010    source източник


Отговори (3)


Можете да направите това:

log4j.appender.FA=org.apache.log4j.RollingFileAppender
log4j.appender.FA.MaxBackupIndex=1

И след това в стартовия код на приложението:

((RollingFileAppender)Logger.getRootLogger().getAppender("FA")).rollOver()

По този начин, за всяко изпълнение на програмата, съществуващият регистрационен файл се премества в "temp.ppr.1" и "temp.ppr" започва нов. По този начин винаги имате и дневника на предишното изпълнение.

person Michael Borgwardt    schedule 23.12.2010
comment
харесвам вашето решение, но моят проблем с RollingFileAppender е, че трябва да обвържете размера на файла и не мога да определя този размер в моята програма. Поправете ме, ако греша ? - person RanZilber; 24.12.2010
comment
@RanZilber: задаването на размера на абсурдно голяма стойност (като 1 TB) трябва да се погрижи за това. Но освен ако основната цел на вашата програма не е да генерира огромни количества данни в лог файла, вероятно ще искате сравнително голяма граница. - person Michael Borgwardt; 24.12.2010

Опитвали ли сте просто да зададете свойството append на FileAppender на false?

log4j.appender.FA.append=false
person Stephen C    schedule 23.12.2010
comment
Мисля, че това трябва да е отговорът. - person Vish; 03.05.2016

Бих предложил като част от вашия инструмент за изграждане (Apache Ant или Maven) да се погрижите за изчистването на файла, който не искате. Като алтернатива, ако искате да запазите резервно копие, можете да използвате RollingFileAppender

person dimitrisli    schedule 23.12.2010