2011-02-12 568 views
2

我想要扩展logback以将带有ERROR日志级别的日志发送到我们的内部日志记录服务(使用http post和一些自定义参数)。logback自定义日志级别处理

正在编写自定义logback过滤最好的方法吗?对我来说,“过滤器”一词听起来更像是“过滤出日志”。

回答

2

您可以使用ThresholdFilter,它只会记录特定appender上给定日志级别(或更高级别)的消息。这里是一个例子,关于如何配置日志级别ERROR的ThresholdFilter。它会利用周围ConsoleAppender记录所有错误消息:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
<!-- ... --> 
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> 
     <!-- log messages with ERROR (and above) only --> 
     <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> 
      <level>ERROR</level> 
     </filter> 

     <encoder> 
      <pattern>%date{yyyy-MM-dd - HH:mm:ss} %-5level %logger{60} - %message%n</pattern> 
     </encoder> 
    </appender> 
<!-- ... --> 
</configuration> 

所以您必须使用添加器执行,这将记录到通过HTTP POST自定义日志服务更换sourrounding ConsoleAppender。可以使用ThresholdFilter,如上例所示。

学习如何实现自己的追加程序,你可能想看看simpledb-appender项目,该项目实现了亚马逊的SimpleDB定制的附加器。