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

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

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

来自: 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用于在第一行中创建记录器对象。 迁移用于获取FileAppender,而FileAppender又调用getFile()来获取日志File对象。

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

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

所以relative path = ./app.log成为{user.dir}/app.log

 get user.dir as System.getproperty("user.dir").