0

この質問に関連しています。Glassfish が slf4j をアプリケーションにエクスポートし、ロギング ソリューションをオーバーライドしているようです。Glassfish のロギングを無効にして、独自のロギング ソリューションを優先させることはできますか? 検索した結果、logging.properties を使用してログを変更する方法しか見つかりませんでした。

私は現在の実装と結婚していませんが、それを機能させることに興味があります。

ありがとう。

4

2 に答える 2

1

他の回答で示唆されているように、委任する前に最初に子クラスローダーを使用するようにGlassFishを構成してみてください。でsun-web.xml

<sun-web-app>
  <class-loader delegate="false"/>
</sun-web-app>

しかし、これが機能する場合、これは実際の解決策よりも回避策です。アプリケーションは、 bean-validation.jarおよびweld-osgi-bundle.jarのSLF4Jバインディングによって汚染されるべきではありません(少なくともはそう信じています)。あなたは多分問題を提起する必要があります。

更新:アーカイブの場合、推奨される回避策は機能しません。しかし、私は問題を再現することができませんでした

于 2010-03-13T00:36:14.053 に答える
0

簡単に言えば、Glassfish は厄介なロガー調整を行い、System.out と System.err を独自のログにリダイレクトします。私はそれを止めることはできませんでしたが、slf4j ライブラリをクラスパスの早い段階で配置し、Glassfish の logging.properties を編集することで、すべてのサーバーとアプリケーションのログ メッセージを 1 つの slf4j ログに収集する方法を見つけました。

長い回答については、このブログ投稿を参照してください。

于 2010-05-13T16:46:15.130 に答える