2010-12-09 13 views
15

Estoy trabajando en un proyecto que utiliza Log4J a través de Commons.Encontrar archivo de registro Log4J

Estoy tratando de encontrar la ruta al archivo de registro, pero no encuentro un método apropiado que devuelva la ruta del archivo de registro del registrador.

¿Alguien ha intentado esto alguna vez?

Respuesta

27

Debe obtener todos los appenders desde el registrador de raíz y luego obtener el nombre del archivo de registro.

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

¿Tal vez podría tratar de obtener los Appenders?

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

Si usted tiene un FileAppender, se puede obtener el archivo ...

Algo así:

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

Espero que esto ayude!

+0

He actualizado el código para que sea centrado en Java, :) –

+1

Debe utilizar el registrador de la raíz para obtener los appenders. 'Logger.getRootLogger(). GetAllAppenders();' – dogbane

+0

@The Elite Gentleman Gracias, se ve mejor ahora :) – LaGrandMere

Cuestiones relacionadas