1

私はXMLSocketReceiver(チェーンソーを実行したいので)を勉強しています。これは私をSocketReceiverに導きます。

SocketReceiverjavadocで私は読んだ

SocketReceiverは、構成されたソケットでリモートロギングイベントを受信し、イベントがローカルで生成されたかのようにLoggerRepositoryに「投稿」します。このクラスは、SocketAppenderクラス(または互換性のあるイベントを送信するクラス)からイベントを受信するように設計されています。

イベントが「投稿」されると、LoggerRespositoryで現在構成されているアペンダーによって処理されます。

それはどのように機能し"posts" it to a LoggerRepositoryますか?

4

1 に答える 1

1

これについて考える1つの方法は、Chainsawが実際に処理できるのは「ローカル」ロギングイベントのみであるということです。その方法は、プログラムで登録された独自のカスタムアペンダーを使用することです。

FileAppenderが「ローカル」ログイベントをファイルに送信するのと同じように、ChainsawのカスタムアペンダーはローカルログイベントをUIのタブに送信します。

レシーバーが登場するのは、これらの「非ローカル」ロギングイベント(VFSLogFilePatternReceiverの場合はログファイルから、SocketReceiverの場合はネットワークから)を「ローカル」ロギングイベントにする方法が必要なことです。チェーンソーのアペンダーで処理できます。

ロギングイベントがReceiverによって「受信」されると、受信者はそれらを「追加」します。これは、log.info( "my log message")を呼び出す場合と非常によく似ています。これらの(現在の)ローカルロギングイベントは、アペンダー(チェーンソーのアペンダーを含む)によって受信されます。

これを確認できる実験の1つは、FileAppender定義をChainsaw構成ファイルに追加することです。Receiversが受信したイベントは、FileAppenderにも送信されます。

ちなみに、チェーンソーの最新の開発者スナップショットを試してみることをお勧めします:http: //people.apache.org/~sdeboy-たくさんの新機能。

お役に立てば幸いです。

スコット

于 2013-02-13T01:45:27.317 に答える