5

WebsphereAppServerでホストされているアプリケーションでLogbackを使用しています。Logbackは、System Outにログアウトするように構成されています(他のユーザーは別のファイルに変更することを躊躇します)。問題は、WebsphereがSystemOutへのログアウトに独自の形式を使用することです。logger.debug("test")私のアプリで実行すると、次のようになります。

[8/7/12 12:27:55:629 CDT] 0000003a SystemOut     O DEBUG com.myapp... test

ここで、「O」までのすべてがWebsphereによって追加されます。残りはLogbackからです

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

ロギングのベストプラクティスについてはよくわかりません。以前、Webアプリで個別のファイルにログインしていましたが、このプロジェクトでは、System Outファイルはサードパーティによって監視されているため、SystemOutの使用から変更するべきではないと言われました。これらの要件を考慮して問題を回避し、System Outロギングを台無しにしないようにWebsphereに指示する方法はありますか、それとも別のファイルへのロギングを開始する唯一の解決策ですか?ありがとう!

4

2 に答える 2

3

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

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

于 2012-08-08T19:11:26.657 に答える
2

フォーマットを変更することはできないと思います。そして、可能であれば、とにかく現在の監視を壊す可能性があります。

2つのロガー、既存の監視用のSystemOut、およびより読みやすい形式用の独自のロガーに同時にログインしてもよいでしょうか。

于 2012-08-08T20:16:40.787 に答える