2017-02-21 2 views
0

В настоящее время я использую log4j для ведения журнала. Он отлично генерирует файл журнала. Но проблема в том, что всякий раз, когда я запускаю свою программу, новые журналы, которые сгенерированы, присоединяются к уже сгенерированным журналам в том же файле. Ниже мои свойства log4j файл:Как создать файл журнала при каждом запуске моей программы Java с помощью Log4j?

log4j.rootCategory = INFO, LOGFILE

log4j.logger.org.apache.axis.enterprise = FATAL, LOGFILE

log4j.appender. LOGFILE = org.apache.log4j.DailyRollingFileAppender

log4j.appender.LOGFILE.File = applicationLogs.txt

log4 j.appender.LOGFILE.Append = истинный

log4j.appender.LOGFILE.Threshold = DEBUG

log4j.appender.LOGFILE.DatePattern = \ u2018. \ u2019yyy-ММ-дд

log4j.appender .LOGFILE.layout = org.apache.log4j.PatternLayout

log4j.appender.LOGFILE.layout.ConversionPattern =% d {YYYY-MM-дд HH: мм: сс}% С {1} [% р] % m% n

Мне нужно сгенерировать новый файл журнала каждый раз, когда я запускаю свою программу. Как это сделать? Этот файл является идеальным. Но я хочу небольшую модификацию.

+2

Попробуйте сделать 'log4j.appender.LOGFILE.Append' ложным. С помощью этого параметра он не будет добавлен, но будет перезаписан в предыдущем файле журнала. – SachinSarawgi

ответ

2

Примите следующие шаги:

1. log4j.appender.LOGFILE.File=applicationLogs_${current_date}.txt

2. log4j.appender.LOGFILE.Append=false.

Для current_date работать изменить основной класс и добавить следующий код:

static{ SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy hhmmss"); System.setProperty("current_date", dateFormat.format(new Date())); }

Первая установка создаст новый файл журнала каждый раз, когда ваша программа начинается в зависимости от текущей даты (так что вы не потеряете старые журналы), а по второй настройке он не будет прикреплен к вашему старому файлу, но перезапишет его.

Вы можете использовать любую из настроек. Первый предпочтительнее, поскольку вы не теряете свои старые журналы.

0

В своем коде добавить что-то, как показано ниже:

String today= Calendar.getInstance() 
    .getTime() 
    .toString() 
    .replaceAll(" ", "_") 
    .replaceAll(":", ""); 
System.setProperty("logfilename", today); 

и в свойствах файла:

log4j.appender.file.File=C:\\${logfilename}.log 
Смежные вопросы