2

私は Log4C を使用して機能を楽しんでいますが、1 つの機能が欠けています: カテゴリごとに複数のアペンダーです。http://log4c.sourceforge.net/
からの引用:「将来のバージョンでは、カテゴリごとに複数のアペンダーを処理します」。

単一のログ メッセージを複数の場所と形式 (XML ファイル、テキスト ファイル、標準出力) に出力する必要があります。

適切な形式で 3 つのアペンダーを作成しましたが、それらはすべて単独で正常に動作しますが、3 つすべてを Log4crc 構成ファイルの 1 つのカテゴリに割り当てようとすると、最初のエントリしか実行されません。例えば

<category name="log.plugin"  priority="debug" appender="file" /> 
<category name="log.plugin"  priority="debug" appender="xml" /> 
<category name="log.plugin"  priority="debug" appender="stdout"/>

この場合、「ファイル」アペンダーにのみ書き込みます。同様に、「xml」アペンダーがリストの最初にある場合は、「xml」アペンダーにのみ書き込みます。

カテゴリごとに複数のアペンダーを正常に実装した人はいますか? または適切な回避策はありますか?

私が見つけた 1 つの方法は、長いカテゴリ名を作成し、カテゴリ階層を利用することです。例えば

<category name="log.plugin."  priority="debug" appender="file" /> 
<category name="log.plugin.foo"  priority="debug" appender="xml" /> 
<category name="log.plugin.foo.bar"  priority="debug" appender="stdout"/>

次に、ロガーを初期化するときに「log.plugin.foo.bar」を参照すると、3 つの場所すべてに書き込まれます。これらの 3 つのアペンダーに書き込む必要がある多くのカテゴリがあるため、構成ファイルが乱雑になるため、この回避策はあまり好きではありません。

助けてくれてありがとう!

4

0 に答える 0