查找 Log4J 日志文件

2022-09-02 12:34:41

我正在开发一个通过Commons使用Log4J的项目。

我正在尝试查找日志文件的路径,但找不到从记录器返回日志文件路径的适当方法。

有人曾经尝试过吗?


答案 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

也许你可以尝试获得附加器?

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

希望这有帮助!


推荐