我希望能夠指定我的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
我會使用「環境」變量,它更容易 –