私は、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>
ああ、動作しないことが表示されます。私が間違ってやっていることや、この機能を得る別の方法がありますか?
[EDIT]
@RCからの提案に基づき、私はまた、--log-dir "/tmp/logMonitor/logs"
、コマンドライン引数を追加する試み、及び${main:--log-dir}
への参照を変更しました。しかし、この変数は "-log-dir"として解決され、ログファイルを<project_root>/-log-dir/application.log
に入れます。 [/ EDIT]
お読みくださいでしたか:https://logging.apache.org/log4j/2.0/manual/lookups.html? –
あなたが言及していると思うリンクの部分に基づいて、私は別の戦略を試みましたが、成功しませんでした。私はこれに関する情報を質問に追加しました。 – ds390s
私は "環境"変数を使いますが、それはより簡単です –