2012-03-28 4 views
0

私はプロジェクトに取り組んでいます。私たちはlog4jを使ってログを処理したいと思っています。私はlog4jドキュメントやその他のオンラインドキュメントを見て簡単に解決できないいくつかの問題に取り組んでいます。多くのlog4j設定の質問

ロギングコードをコードベース全体に配置し、プロパティファイルでロギングされたデータをアペンダの階層にアロケートし、ファイルに書き出す方法を基本的な考え方にしました。それはいいです。これは基本的に私はこのような1ハードコーディングされたフォルダ内のgreppableログファイルを作成することができます:ような私は、ログの場所は動的なものにしたい、::

log4j.appender.R.File={$processDir}/example.log 

log4j.appender.R=org.apache.log4j.RollingFileAppender 
log4j.appender.R.File=example.log 

しかし、私は二つの基本的な質問があります

また、ユーザーがこのアプリケーションを実行するたびに、出力ファイルを含むフォルダが作成されます。私は、ログファイルをそこに置いておきたいと思いますし、それを達成する方法がわかりません。

その他の問題(最初の問題が解決されると、これはもっと簡単になりますが...)は、アプリの実行プロセスを必ずしも反映しないフォーマットされたログを作成することです、タイトル、すべての入力ファイルのリスト、すべての出力ファイルのリスト、遭遇した警告が続きます。

私は、ObjectRendererを実装したオブジェクトを作成し、必要な情報を与えたdoRenderメソッドを作成すると思います。

正しいことはありますか? ありがとう!

答えて

1

は、あなたは、システムのプロパティとして変数を定義しなければなりません

log4j.appender.R.File=${processDir}/example.log 

この構文で変数を使用することができます(複数可。-DprocessDir = ...)または手動

System.setProperty("processDir",logDir); 
で(フォルダを作成した後)