根据操作系统的不同日志位置

时间:2015-07-06 15:08:01

标签: java tomcat log4j log4j2

我需要将日志文件存储在Windows中的C:\.DS\logs和Linux中的/.DS/logs中。

我找到了这样做的方法:我需要在log4j配置文件中使用System.setProperty("logs.dir", ...)并使用${logs.dir}

然而,问题是,log4j已经在此时初始化,并且它没有获取我的系统属性。

有没有更简单的方法来做到这一点,而我需要手动重新启动log4j?

由于

1 个答案:

答案 0 :(得分:1)

在log4j2.xml配置中使用属性查找

可用的系统属性 https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html

<Properties> //defined in log4j2 config
<Property name="LS">${sys:file.separator}</Property>
<Property name="LOG_DIR">partial_path${LS}partial_path${LS}</Property>
</Properties>

https://logging.apache.org/log4j/2.x/manual/configuration.html#PropertySubstitution

然后在文件路径

<RollingFile name="FILE_LOG" fileName="${LOG_DIR}file.log"