Получить местоположение файла журнала Log4j2 для записи в каталог, содержащий дату

1

Как я могу найти местоположение файла журнала log4j? Я пробовал это: где я могу программно найти, где хранятся файлы журнала log4j?

Но он не работает для более новых версий log4j.

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

Теги:
junit
log4j
log4j2

1 ответ

4
Лучший ответ

Если вы настроили приложение следующим образом:

<File name="Technical" 
      fileName="app/${date:yyyy-MM-dd HHmmss}/logTechnical.log">
  <PatternLayout pattern="%d %p %c{1.} [%t] %m%n" />
</File>

Вы можете получить каталог следующим образом:

import java.io.File;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.appender.FileAppender;
import org.apache.logging.log4j.core.config.Configuration;

...

LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
Configuration config = ctx.getConfiguration();
FileAppender techical = (FileAppender) config.getAppender("Technical");
File dir = new File(techical.getFileName().replaceFirst("[^\\/]+$", ""));
  • 0
    Ух ты, я попробовал что-то подобное, и там говорилось, что я не могу привести Apender к FileApender. Большое спасибо, снова Пол

Ещё вопросы

Сообщество Overcoder
Наверх
Меню