我有了与阈值滤波一个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