I percorsi relativi vengono utilizzati nel file log4j.properties.Dove posso trovare in modo programmatico dove sono memorizzati i file di log log4j?
Come posso trovare il percorso assoluto in modo programmatico dove vengono memorizzati i registri?
I percorsi relativi vengono utilizzati nel file log4j.properties.Dove posso trovare in modo programmatico dove sono memorizzati i file di log log4j?
Come posso trovare il percorso assoluto in modo programmatico dove vengono memorizzati i registri?
Penso che un modo è come questo:
dal momento che il percorso è relativo alla proprietà di sistema "user.dir"
percorso in modo relativo = ./app.log
diventa {user.dir}/app.log
Da: http://www.gunith.com/2010/11/how-to-get-the-file-path-of-a-log4j-log-file/
Si supponga che il file log4j.properties sia il seguente,
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
In tal caso, il codice Java dovrebbe essere la seguente,
Logger logger = Logger.getLogger("migrationlog"); //Defining the Logger
FileAppender appender = (FileAppender)logger.getAppender("migration");
return new File(appender.getFile());
Nota che migrationlog stato usato per creare l'oggetto logger nella prima riga. E migrazione viene utilizzato per ottenere FileAppender che a sua volta chiama getFile() per ottenere l'oggetto File di registro.
Solo un errore che ho fatto: Considera di usare '(FileAppender) logger.getRootLogger(). GetAppender (" migration ")' nel caso tu lavori con il root logger. Altrimenti otterrai una NullPointerException. – muffin
Ma ... perché vuoi farlo? Log4J è in qualche modo pensato di astrarre ciò da te. –
@Pascal, desidera fornire l'accesso al registro tramite un'interfaccia visiva per il download. – JavaRocky