Finding Log4J log file

佐手、 提交于 2019-12-09 00:27:09

问题


I'm working on a project that uses Log4J via Commons.

I'm trying to find the path to the log file, but I'm not finding an appropriate method that will return the logfile path from the Logger.

Anyone ever attempted this?


回答1:


You have to get all appenders from the root logger and then get the name of the log file.

    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:


Maybe you could try to get the Appenders ?

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

If you have a FileAppender, you can get the File ...

Something like that :

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);
}

Hope this helps !



来源:https://stackoverflow.com/questions/4401251/finding-log4j-log-file

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!