我希望能够指定我的log4j2日志将与VM参数或命令行参数一起去的位置。Log4j2,如何使用命令行参数控制日志记录输出目录
这与询问如何指定log4j属性文件路径的所有问题不同。
我想我可以在VM参数添加-Darbitrary.path="path/to/root/dir"
然后引用它log4j2.properties
:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<File name="file" fileName="${arbitrary.path}/application.log">
<PatternLayout
pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n" />
</File>
</Appenders>
<Loggers>
<Root level="info" additivity="false">
<AppenderRef ref="file" />
</Root>
</Loggers>
</Configuration>
唉,看来这是行不通的。有什么我做错了,或者获得这种功能的一些替代方法?
[编辑]
基于来自@RC。建议,我也尝试添加到命令行参数,--log-dir "/tmp/logMonitor/logs"
,并改变了参考${main:--log-dir}
。然而,这个变量被解析为“-log-dir”,并且将日志文件放入<project_root>/-log-dir/application.log
[/编辑]
你读过了:https://logging.apache.org/log4j/2.0/manual/lookups.html? –
根据我认为你指的那个环节的部分,我尝试了另一种策略,但没有成功。我已经为这个问题添加了关于这个的信息。 – ds390s
我会使用“环境”变量,它更容易 –