不同的日志位置取决于 OS
Different log locations depending on OS
我需要将日志文件存储在 windows 中的 C:\.DS\logs
和 Linux 中的 /.DS/logs
中。
我找到了这样做的方法:我需要在 log4j 配置文件中使用 System.setProperty("logs.dir", ...)
和 ${logs.dir}
。
然而,问题是,此时 log4j 已经初始化,它没有启动我的系统 属性。
有没有更直接的方法来做到这一点,而不需要我手动重新初始化 log4j?
谢谢
在 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"
我需要将日志文件存储在 windows 中的 C:\.DS\logs
和 Linux 中的 /.DS/logs
中。
我找到了这样做的方法:我需要在 log4j 配置文件中使用 System.setProperty("logs.dir", ...)
和 ${logs.dir}
。
然而,问题是,此时 log4j 已经初始化,它没有启动我的系统 属性。
有没有更直接的方法来做到这一点,而不需要我手动重新初始化 log4j?
谢谢
在 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"