Reputation: 13733
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?
Upvotes: 19
Views: 28941
Reputation: 10359
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 !
Upvotes: 1
Reputation: 274542
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());
}
}
Upvotes: 32