Поиск файла журнала Log4J

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

Я пытаюсь найти путь к файлу журнала, но я не нахожу подходящий метод, который вернет путь к файлу журнала из Logger.

Кто-нибудь когда-либо пытался это сделать?

Ответы

Ответ 1

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

    Enumeration e = Logger.getRootLogger().getAllAppenders();
    while ( e.hasMoreElements() ){
      Appender app = (Appender)e.nextElement();
      if ( app instanceof FileAppender ){
        System.out.println("File: " + ((FileAppender)app).getFile());
      }
    }

Ответ 2

Возможно, вы могли бы попытаться получить Appenders?

Enumeration appenders = logger.getRootLogger().getAllAppenders(); 

Если у вас есть FileAppender, вы можете получить файл...

Что-то вроде этого:

FileAppender fileAppender = null;
Enumeration appenders = logger.getRootLogger().getAllAppenders(); 
while(appenders.hasMoreElements()) {

    Appender currAppender = (Appender) appenders.nextElement();
    if(currAppender instanceof FileAppender) {
        fileAppender = (FileAppender) currAppender;
    }
}

if(fileAppender != null) {
    logDest = fileAppender.getFile();
    System.out.println("logDest : " + logDest);
}

Надеюсь, это поможет!