9

しきい値フィルターを備えたアペンダーを持つログバック構成があります。

<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.Thing を SYSLOG アペンダーに記録し、他のロガー用にフィルターをそのままにしておく最善の方法は何でしょうか?

もう1つのアプローチは、フィルターを配置していないSYSLOG2という2番目のアペンダーを作成し、それを使用する特定のロガーを設定することですが、1つのSYSLOGアペンダーだけでログバックを構成する方法があるかどうか疑問に思っていました...

ありがとう、

4

2 に答える 2

4

あなたができることは、同じ出力で2番目のロガー+アペンダーを書くことです:

<appender name="SYSLOG-2" class="ch.qos.logback.classic.net.SyslogAppender">
  <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
    <level>DEBUG</level>
  </filter>
  ...
</appender>

<logger name="akka.some.Thing" level="DEBUG">
  <appender-ref ref="SYSLOG-2" />
</logger>

これにより、特定の DEBUG タスクが同じ出力に追加されます。

于 2014-02-06T07:36:58.933 に答える