2012-04-04 6 views
0

Log4Jで現在SocketAppenderを使用していて、リモートホストにデータを渡す際に、特にLocationInfo(クラス名、行番号など)のデータを渡す際に問題が発生しました。私が行っていることは以下の通りです:実行時にLog4JLoggerを拡張し、ランタイム中にサブクラスを呼び出す

​​

どのように私はMyLogger代わりのLog4JLoggerをつかむために、次のコードを変更できますか?

答えて

1

Loggerを拡張する必要はありませんが、独自のAppenderを実装するか、必要なLog4J Appenderベースを拡張してください。 たとえば、AppenderSkeletonを拡張できます。

あなたはなぜそれが必要なのか正確に想像することはできません。もう1つの可能性はLog4J Mapped Diagnostic Contextです。

+0

MDCとNDCは、私が読んでいるところによると、分散環境ではうまく動作しません。主な問題は、SocketAppenderがLocationInfoを取得するということです。 – Woot4Moo

+0

doc(http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/net/SocketAppender.html)で " ...イベントは、同じタイムスタンプ、NDC、クライアントがローカルにログオンしていたかのような位置情報で記録されます... "それはバグですか? – dash1e

+0

バグか設定ファイルの問題です。詳細については私の他の質問を参照してください:http://stackoverflow.com/questions/9944681/log4j-socketappender-swallows-debug-information-from-remote-clients – Woot4Moo

関連する問題