2

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

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

4

1 回答 1

2

您可以使用ThresholdFilter, 仅在特定附加程序上记录具有给定日志级别(或更高级别)的消息。这是一个示例,关于如何配置ThresholdFilter日志级别的 ERROR。它将使用周围记录所有错误消息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>

所以你必须ConsoleAppender用你的 appender 实现替换环境,它将通过 HTTP Post 记录到你的自定义日志服务。ThresholdFilter可以如上例所示使用。

要了解如何实现您自己的 Appender,您可能需要查看simpledb-appender项目,该项目为 Amazon SimpleDB 实现了一个自定义 appender。

于 2013-05-28T09:33:08.287 回答