我可以在哪里以编程方式查找log4j日志文件的存储位置?

Jav*_*cky 7 java log4j

log4j.properties文件中使用相对路径.

如何以编程方式找到存储日志的绝对路径?

Bas*_*usa 10

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

假设log4j.properties文件如下,

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
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您的Java代码应如下所示,

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

请注意,migrationlog用于在第一行中创建记录器对象.而迁移来获得,后者又调用的GetFile()来获取日志文件对象FileAppender.