简体   繁体   English

查找Log4J日志文件

[英]Finding Log4J log file

I'm working on a project that uses Log4J via Commons. 我正在开发一个使用Log4J通过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. 我正在尝试找到日志文件的路径,但我找不到一个合适的方法来返回Logger中的日志文件路径。

Anyone ever attempted this? 有没有人试过这个?

You have to get all appenders from the root logger and then get the name of the log file. 您必须从根记录器获取所有appender,然后获取日志文件的名称。

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

Maybe you could try to get the Appenders ? 也许你可以尝试获得Appenders?

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

If you have a FileAppender, you can get the File ... 如果您有FileAppender,则可以获取文件...

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 ! 希望这可以帮助 !

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM