From the Logger
, iterate through all getAllAppenders
looking for the one that implements RollingFileAppender
, and call getFile
on it. Or you could use getAppender("RollingFile")
instead, if you don't mind hard-coding the appender's name.
For Log4j 1:
public static final Logger LOG = Logger.getLogger(YourClass.class);
public File getLoggerFile() {
Appender appender = LOG.getAppender("RollingFile");
return appender.getFile();
}
For Log4j 2: (note that this requires the non-interface logger)
public static final Logger LOG = LogManager.getLogger(YourClass.class);
public String getLoggerFileName() {
org.apache.logging.log4j.core.Logger loggerImpl = (org.apache.logging.log4j.core.Logger) LOG;
Appender appender = loggerImpl.getAppenders().get("RollingFile");
// Unfortunately, File is no longer an option to return, here.
return ((RollingFileAppender) appender).getFileName();
}