0
Log4Jで現在SocketAppender
を使用していて、リモートホストにデータを渡す際に、特にLocationInfo
(クラス名、行番号など)のデータを渡す際に問題が発生しました。私が行っていることは以下の通りです:実行時にLog4JLoggerを拡張し、ランタイム中にサブクラスを呼び出す
どのように私はMyLogger
代わりのLog4JLogger
をつかむために、次のコードを変更できますか?
Log4Jで現在SocketAppender
を使用していて、リモートホストにデータを渡す際に、特にLocationInfo
(クラス名、行番号など)のデータを渡す際に問題が発生しました。私が行っていることは以下の通りです:実行時にLog4JLoggerを拡張し、ランタイム中にサブクラスを呼び出す
どのように私はMyLogger
代わりのLog4JLogger
をつかむために、次のコードを変更できますか?
Loggerを拡張する必要はありませんが、独自のAppenderを実装するか、必要なLog4J Appenderベースを拡張してください。 たとえば、AppenderSkeletonを拡張できます。
あなたはなぜそれが必要なのか正確に想像することはできません。もう1つの可能性はLog4J Mapped Diagnostic Contextです。
MDCとNDCは、私が読んでいるところによると、分散環境ではうまく動作しません。主な問題は、SocketAppenderがLocationInfoを取得するということです。 – Woot4Moo
doc(http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/net/SocketAppender.html)で " ...イベントは、同じタイムスタンプ、NDC、クライアントがローカルにログオンしていたかのような位置情報で記録されます... "それはバグですか? – dash1e
バグか設定ファイルの問題です。詳細については私の他の質問を参照してください:http://stackoverflow.com/questions/9944681/log4j-socketappender-swallows-debug-information-from-remote-clients – Woot4Moo