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

时间:2010-07-10 00:26:03

标签: java log4j

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

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

2 个答案:

答案 0 :(得分: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

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

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

请注意, migrationlog 用于在第一行中创建记录器对象。 并且 migration 用于获取FileAppender,后者又调用getFile()来获取日志File对象。

答案 1 :(得分:3)

我认为一种方式是这样的:

因为路径是相对于系统属性“user.dir”

因此相对路径= ./app.log变为{user.dir}/app.log

get user.dir as System.getproperty("user.dir").
相关问题