logback пользовательская обработка уровня журнала - PullRequest
2 голосов
/ 12 февраля 2011

Я хочу расширить logback, чтобы отправлять журналы с уровнями журналов ERROR в нашу внутреннюю службу ведения журналов (с http post и некоторыми пользовательскими параметрами).

Является ли запись пользовательского фильтра logback лучшим способом для этого?Для меня слово «фильтр» звучит больше как «отфильтровывать логи».

1 Ответ

2 голосов
/ 28 мая 2013

Вы можете использовать ThresholdFilter, который будет регистрировать сообщения только с определенным уровнем (или выше) в конкретном приложении.Вот пример того, как настроить 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>

Таким образом, вы должны заменить sourrounding ConsoleAppender вашей реализацией appender, которая будет регистрировать вашу службу регистрации через HTTP Post.ThresholdFilter можно использовать, как показано в примере выше.

Чтобы узнать, как реализовать свой собственный Appender, вы можете взглянуть на проект simpledb-appender , которыйреализует собственный appender для Amazon SimpleDB.

...