Добавить пороговый фильтр к выходу Logback <configuration debug = "true">? - PullRequest
0 голосов
/ 02 мая 2019

Есть идеи, как установить пороговый фильтр для отладочных сообщений самого Logback?

<configuration debug="true">
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} %-5level [%thread] [%logger{0}] [%M:%L] - %m%n</pattern>
        </encoder>
    </appender>

    ...

    <root level="TRACE">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="ASYNC_SLACK_LOGS" />
    </root>
</configuration>

Вышеприведенное дает подробный вывод отладочной информации:

16:05:16,479 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
16:05:16,480 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback-test.xml] at [file:/W:/JavaProjects/logback-slack-appender/target/test-classes/logback-test.xml]
16:05:16,697 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
16:05:16,703 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [STDOUT]
...
6:05:16,825 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@2d901eb0 - Registering current configuration as safe fallback point
16:05:17.696 INFO  [main] [SlackAppenderTest] [simulateAPITrouble:19] - This will fail to post to Slack
16:05:18.256 |-ERROR in com.github.maricn.logback.SlackAppender[SLACK_LOGS] - Slack POST request failed: 404 no_team

Как ограничить вывод отладочной информации,скажем, просто ошибки ядра Logback?Например:

16:05:17.696 INFO  [main] [SlackAppenderTest] [simulateAPITrouble:19] - This will fail to post to Slack
16:05:18.256 |-ERROR in com.github.maricn.logback.SlackAppender[SLACK_LOGS] - Slack POST request failed: 404 no_team

Причина в том, что я хочу захватить вывод различных вызовов addError() в приложениях других людей ( в идеале для приложения файла), но я этого не делаюхотите получить всю подробную информацию при запуске приложения.

1 Ответ

0 голосов
/ 02 мая 2019

Это выглядело многообещающе, но нет настроек для контроля гранулярности консольных сообщений.

<configuration debug="false">
    <statusListener class="ch.qos.logback.core.status.OnErrorConsoleStatusListener" />
    ...

Вместо этого я создал пользовательский прослушиватель для проверки статуса:

import ch.qos.logback.core.status.Status;
import ch.qos.logback.core.status.StatusListener;

public class ErrorStatusListener implements StatusListener
{
    @Override
    public void addStatusEvent( Status status )
    {
        if ( status.getLevel() >= Status.WARN )
            System.out.println( status.getMessage() );
    }
}

Теперь я также могу управлять сообщениями об ошибках и отправлять их обратно в конвейер Logback, чтобы они были обработаны файловым приложением.

17:40:32.336 INFO  [main] [SlackAppenderTest] [simulateAPITrouble:21] - This will fail to post to Slack
Slack POST request failed: 404, no_team
...