У меня есть продукт, с помощью которого я запускаю свое приложение (которое я написал). Это многопоточное приложение, которое обращается к одному файлу журнала. Я столкнулся с проблемой, что каждый раз, когда я запускаю свой файл журнала приложений, добавляется. Только когда я перезапускаю продукт, создается новый файл журнала. Но я хочу, чтобы каждый раз, когда выполнялось мое приложение, я хочу только свежий контент в моем файле журнала.Переписывание в тот же файл журнала каждый раз в log4j
Ниже приведен код.
//Log4j initialization
public void initLog4j() throws MyException {
if (logfile != null){
myLog4j = Logger.getLogger("MY_LOG");
try {
appender = new FileAppender(new PatternLayout("%m%n"),logfile.getAbsolutePath(),false);
appender.setAppend(false);
myLog4j.addAppender(appender);
myLog4j.setLevel((Level) Level.DEBUG);
} catch (IOException e) {
throw new MyException(104, logfile.getAbsolutePath());
}
}
//Stopping to write to log4j
public void stop() {
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
writeToLog4j(INFO,new StringBuilder(name).append(" stop: ").append(dateFormat.format(new Date())).toString(),true);
}
То, что я пытался до сих пор я пытался удалить файл, но он не был, как удаление FileDescriptor не был выпущен. Поэтому я добавил следующий код в функции stop()
if(null != appender) {
appender.close();
}
После того, как этот новый файл будет сгенерирован или существующий файл будет перезаписан. Но каждый раз, когда выполняется мое приложение, я получаю сообщение ниже каждого раза при попытке записать в файл журнала
log4j: ОШИБКА Попытка добавить к закрытому приложению с именем [null].
Пожалуйста, помогите мне в решении этого вопроса.
Есть ли причина, по которой вы программно конфигурируете log4j? – Fildor
Нет конкретной причины. Мне было легко. Я не знаю много о файле свойств и как их использовать в log4j. Файл свойств Wih можно решить? Если да, то как? – user3540481
Непонятно, когда создается новый файл журнала. В чем разница между «при перезапуске продукта» и «при каждом запуске приложения» ... – Fildor