log4j.properties文件中使用了相对路径。
如何以编程方式找到存储日志的绝对路径?
答案 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").