特定のロガーのログレベルを再マッピング:logback私は、閾値フィルタとのアペンダを持つlogbackの構成を有している
<appender name="SYSLOG" class="ch.qos.logback.classic.net.SyslogAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
...
</appender>
これが唯一の情報と高いが(エラー、警告)syslogに記録されますことを保証します。しかし、私たちが使用するサードパーティのライブラリの1つは、DEBUGで特定のイベントを記録することです。このイベントをsyslogに記録したいと思います。私が気づいた最初のアプローチは、ロガーのログレベルを再マップすることでしたが、これが可能かどうかはわかりません。ような何か:明らかに
<logger name="akka.some.Thing" level="DEBUG" logAs="INFO">
<appender-ref ref="SYSLOG" />
</logger>
は、「logAs」パラメータが存在しないので、私はそれを行うことはできません。 akka.someを他のロガーのために配置したままSYSLOGアペンダにロギングするのに最適な方法は何でしょうか?
もう1つの方法は、フィルタを設置していないSYSLOG2という第2のアペンダを作成し、それを使用する特定のロガーを設定することですが、SYSLOGアペンダを1つだけ使用してログバックを設定する方法があるかどうかは疑問でした...
おかげで、あなたは何ができるか
なぜしきい値フィルタがありますか?あなたの他の "ロガー"設定はこのアペンダーにINFOよりレベルを上回っていますか?もしそうなら、なぜですか? –
はい、2か所にログします。 syslogアペンダはライセンス制約のあるインデクサで終わるので、INFOよりも低いログは絶対に記録しないでください。しかし、私たちがデバッグしたいときには、デバッグを有効にします。これはファイルアペンダに送られます(syslogのすべてのデバッグガンクなし)。 – Brett
興味深い。あなたの環境が許せば、最も簡単なことは、ライセンス問題があったものを拒否する独自の小さなフィルタを書くことでしょう。さもなければ、表現を可能にするより複雑なフィルタの1つが機能するかもしれませんが、2番目のアペンダはおそらく理解しやすく、維持しやすくなります。 –