私は 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 つのアペンダーに書き込む必要がある多くのカテゴリがあるため、構成ファイルが乱雑になるため、この回避策はあまり好きではありません。
助けてくれてありがとう!