2012-08-07 12 views
5

Websphere App ServerでホストされているアプリケーションでLogbackを使用しています。ログバックはSystem Outにログするように設定されています(他のファイルは別のファイルに変更することを躊躇しています)。問題は、Websphereが独自のフォーマットを使用してSystem Outにロギングすることです。私のアプリの収率でlogger.debug("test")を実行:ログアウトをログに記録したWebsphereシステムへの出力フォーマットの問題

「O」までのすべてのものは、WebSphereによって追加され
[8/7/12 12:27:55:629 CDT] 0000003a SystemOut  O DEBUG com.myapp... test 

。残りはLogbackのもの

Logbackを設定して、次のパターンを使用するように設定しました:%-5level %logger{36} - %msg%n Websphereが独自に行うタイムスタンプとスレッド情報を繰り返さないように、私は完全にはできませんLogbackからSystem Outへのログをカスタマイズします。

ベストプラクティスをロギングする方法についてはあまり知られていません。以前は、Webアプリケーションでファイルを別々に記録していましたが、このプロジェクトでは、System Outファイルが第三者によって監視されていると言われていました。これらの要件を考慮して私の問題を回避する方法はありますか?Websphereに私のSystem Outロギングを混乱させないように指示するか、別のファイルへのロギングを開始する唯一のソリューションですか?ありがとう!

答えて

2

フォーマットを変更することはできません。そしてもし可能であれば、それはとにかく現在の監視を破るかもしれません。

同時に2つのロガーにログオンすれば誰でも気になるでしょうか?既存のモニターの場合はSystemOut、よりわかりやすいフォーマットの場合は自分のものです。

+0

2つのロガーが良い考えです。開発チームにとっては、独自のログファイルと監視チームを別々のものにするとよいでしょう。 –

3

ログバックは、System.outにメッセージを書き込むように設定されています。ただし、System.outに書き込まれたすべては、WebSphereによってリダイレクトされ、WebSphereによって生成されたログ・メッセージと同じフォーマットで、重大度標識「O」を持つSystemOut.logファイルに書き込まれます。それを変更することはできません。

SystemOut.logを使用するように指示した人は、メッセージが正しいカテゴリと重大度で書き込まれ、ログ・レベルが変更できるように、WebSphereのログ・システムを使用してログを確実に行う必要があります。実行時にWebSphereのログ・システムはjava.util.logging上に構築されているため、logbackをslf4j-jdk14で置き換えて、その要件を満たす必要があります。

+0

彼は、そのファイルがサードパーティによって監視されているため、SystemOut.logが必要だと言っていましたが、これは私にとって驚くことではありません。ログファイルを自分で監視する外部ツールがありますが、これらのツールで他のファイルを監視するように指示できます。 (フォーマットが異なる場合でも、サードパーティに追加のファイルを監視させてもらうことができれば、IMOの方が良いでしょう。) – dbreaux

関連する問題