我有了與閾值濾波一個appender一個的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>
這確保了只有信息和更高(警告,錯誤)獲得記錄到系統日誌。但是,我們使用的第三方庫之一是在DEBUG上記錄特定事件,並且我想將此事件記錄到syslog。我想到的第一種方法是嘗試在記錄器中重新映射日誌級別,但不確定這是否可行?例如:
<logger name="akka.some.Thing" level="DEBUG" logAs="INFO">
<appender-ref ref="SYSLOG" />
</logger>
顯然,「logAs」參數不存在,所以我不能這樣做。將akka.some.Thing記錄到SYSLOG appender,同時將過濾器留在其他記錄器上的最佳方法是什麼?
另一種方法是創建一個名爲SYSLOG2的第二個appender,它沒有適當的過濾器,並設置特定的記錄器來使用它,但想知道是否有一種方法來配置只有1個SYSLOG appender的logback ...
感謝,
爲什麼你有閾值過濾器?您的其他「記錄器」配置是否會將高於INFO的等級發送給此appender?如果是這樣,爲什麼? – 2013-02-25 19:36:45
是的,我們登錄到2個位置。系統日誌appender結束於一個使用許可constaints的索引器,所以我們永遠不想記錄任何低於INFO的東西。但是,當我們想要調試時,我們啓用調試,並且這將轉到文件appender(沒有syslog中的所有調試gunk)。 – Brett 2013-04-16 10:43:06
有趣。如果你的環境允許的話,最簡單的辦法就是編寫你自己的小型過濾器,可以拒絕任何有授權問題的東西。否則,更復雜的過濾器之一 - 允許表達式 - 可能有效,但第二個appender可能更容易理解和維護。 – 2013-04-16 14:54:57