2012-02-14 5 views
3

JBoss 7.1.0CR1bのLog4Jには奇妙な問題があります(以前のバージョンではこれはJBossに移植されています)。私のEARからのログ行はすべてINFOレベルでラップされています。ですから、例えば、私のログ行は次のようになります。Log4jメッセージをラッピングするJbossのロギング

13:09:14,684 INFO ERROR CRK TEST! 

実際のログ行をlog4jのLogger.error(「!CRKのTEST」)を使用しています。一体どこから来た余分な "INFO"はどこですか?

13:08:07,177 INFO [org.jboss.msc] JBoss MSC version 1.0.1.GA 

私は様々なlog4jの設定をいじっおよびデバッガを歩くしようとしていました:私の推測では、ロガーのメッセージがこのような純粋なのJBossコンテナメッセージ、と発生しませんので、何とかのJBossのロガーによってラップされていますしかし、なぜこれが起こっているのかについては空白になる。何か案は?

答えて

1

私はlog4jがJBoss STDIOがJBoss Log ManagerにINFOメッセージとして受け取り、出力するstdoutに書き込んでいると思います。

appenderが常にstdoutに書き込んでいる場合を除いて、この問題を修正できるデプロイメントログを作成する計画があります。

あなたのベストソリューションは、使用しているアペンダーを見て、どこに書いているのかを確認することです。それがstdoutに書いているなら、それは常にそのように見えます。

+0

そうです、これはそうであるようです。システムの以前の部分では、log4j.propertiesファイルが読み込まれています。このファイルにはConsoleAppenderがあり、JBossによって捕捉され、JBossコンソールハンドラで書き直されます。残念ながら、私はお互いに素敵な遊びをさせ、古いlog4j戦略を取り除いてJBoss版に置き換える方法を考え出すのは大したことではありません。 –

+0

私はlog4jに精通していませんが、ConsoleAppenderのレベルをNONEに変更できますか?それは最も簡単な解決策かもしれません。 –

0

私はあなたのロガーが何とかSystem.outおよび/またはSystem.errに接続されていることを、誰か(おそらくJBossの、おそらくいくつかの他のEAR/WARを/ ...)別のロガーにそれに印刷されたすべてのものをラップするカスタムOutputStreamをインストールすることを推測しますメッセージ。おそらく、欠落している[...]部分は、ルートロガーが使用されていることを示しています。

これをテストするには、何かをボットストリームに直接出力し、ルートロガーを取り出してINFOをそれに押し込みます。

別の推測では、 log4jジャーは、JBoss/Hibernateによって伝播されたslf4jのものと何らかの形で衝突します。

+1

[...]が欠けていることは、私にはむしろ疑わしいです。どのレベルのメッセージが出ているのか確認していますか?カスタムアペンダーがここでお手伝いします - 私は一度、より多くの情報を出力するように書いています。例えば、すべてのメッセージのスタックトレースです。また、有益な-Dlog4j.debug = trueを試してみてください。 Hthとgl – davidfrancis

関連する問題