Log4j,如何将日志文件放入动态目录位置

时间:2015-07-08 12:05:35

标签: java logging log4j

任何人都可以告诉我如何将Log4j的日志文件放在我的项目位置? 我想每次都将我的日志文件放入src / main / resources。 我不想在我的项目的磁盘上关心我的位置,例如:如果我在D:/项目中有我的项目,之后我在C:/ project中更改我的位置项目我想把我的日志文件放在每次在src / main / resources上都没有将此行更改为此

log4j.appender.file.File=C:\\project

用这个

log4j.appender.file.File=D:\\project

有人有什么想法吗? Thx提前寻求帮助:)

2 个答案:

答案 0 :(得分:3)

您可以编写逻辑来确定您的应用程序是在C:\...还是D:\...中运行,方法是检索当前目录并设置系统变量,如下所示"logPath"

System.setProperty("logPath", myPath); // where myPath is either C:\... or D:\... based on your logic

然后在log4j.properties

中使用此属性
log4j.appender.file.File=${logPath}src\main\resources\MyApplicationLog.log
  

注意:您需要确保已设置系统变量   在log4j初始化之前。

答案 1 :(得分:0)

您可以使用此代码

在代码中定义变量
System.setProperty("path", System.getProperty("user.dir"));

并将appender更改为

log4j.appender.file.File=${path}/src/main/resources