2016-08-01 5 views
0

My appは、実行するたびにSystem.currentTimeMillis()によって決定された名前のファイルを動的に作成されたディレクトリに出力します。私は呼んでJavaコードでLog4j2 - 動的に作成されたディレクトリへのログ

<File name="File" fileName=".\xxx\${sys:log4j2.saveDirectory}\test.log" immediateFlush="false" append="false">\ 
    <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> 
</File> 

は、以下のソリューションしようとしました

String path = Long.toString(System.currentTimeMillis()); 
System.setProperty("log4j2.saveDirectory", path); 

を私はFileNotFoundException得るので、これは、動作しません。この種の動的に作成されたフォルダにログインするようにlog4j2に指示する方法は何ですか?

+0

ログの書き込みを試みるディレクトリが存在するかどうかを確認できますか? – uniknow

+0

問題が解決されました。プロパティが設定される前にロガーが初期化されていません –

答えて

0

問題を解決しました。私は電話をかけていました。

System.setProperty("log4j2.saveDirectory", path); 

ロガーの初期化後です。解決策は、ロガーを初期化する前に、またはデフォルトパスを設定することです。

関連する問題