我正在开发一个通过Commons使用Log4J的项目。
我正在尝试找到日志文件的路径,但我找不到一个合适的方法来从Logger返回日志文件路径。
有人试过这个吗?
答案 0 :(得分:30)
您必须从根记录器中获取所有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());
}
}
答案 1 :(得分:1)
也许你可以尝试获得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);
}
希望这有帮助!