2010-07-10 13 views

Respuesta

3

Creo que una forma de hacerlo es la siguiente:

ya que la ruta es relativa a la propiedad del sistema "user.dir"

recorrido por lo que se convierte en relativo = ./app.log{user.dir}/app.log

9

Desde: http://www.gunith.com/2010/11/how-to-get-the-file-path-of-a-log4j-log-file/

Supongamos que el archivo log4j.properties es el siguiente,

log4j.logger.migrationlog = INFO, migration 
log4j.appender.migration = org.apache.log4j.RollingFileAppender 
log4j.appender.migration.File = C:/work/log/migration.log 
log4j.appender.migration.MaxFileSize=20MB 
log4j.appender.migration.MaxBackupIndex=1 
log4j.appender.migration.layout = org.apache.log4j.PatternLayout 
log4j.appender.migration.layout.conversionPattern = %d %-5p %c - %m%n 

En tal caso, el código Java debe ser el siguiente,

Logger logger = Logger.getLogger("migrationlog"); //Defining the Logger 
FileAppender appender = (FileAppender)logger.getAppender("migration"); 
return new File(appender.getFile()); 

Tenga en cuenta que migrationlog se utilizó para crear el objeto registrador en la primera línea. Y migración se utiliza para obtener el FileAppender que a su vez llama a getFile() para obtener el objeto de archivo de registro.

+0

Solo un error que cometí: Considere utilizar '(FileAppender) logger.getRootLogger(). GetAppender (" migration ")' en caso de que trabaje con el registrador raíz. De lo contrario, obtendrá una NullPointerException. – muffin

Cuestiones relacionadas