Подтвердить что ты не робот

Как настроить Netty Logger factory, чтобы увидеть результат LoggingHandler?

Я использую запись slf4j с логином и в начале моего приложения написал

InternalLoggerFactory.setDefaultFactory(new Slf4JLoggerFactory());

то я добавил в конвейер новый экземпляр LoggingHandler(InternalLogLevel.DEBUG). К сожалению, это все еще ничего не записывает, я отлаживался и уровень отладки был проблемой, просто пропустил сам журнал.

Как мне настроить эту работу LoggingHandler?

4b9b3361

Ответ 1

Я сделал небольшой пример, который работает, я разместил его на gist на github. Он использует logback как бэкенд slf4j. Моменты, на которые следует обратить внимание, следующие:

  • InternalLoggerFactory.setDefaultFactory(new Slf4JLoggerFactory()); должен выполняться прямо в точке входа вашей программы. Иногда эту "точку входа" может быть очень сложно определить.
  • Соответствующая конфигурация бленда slf4j. Поскольку slf4j является только оболочкой, он вообще не имеет отношения к конфигурации - он специфичен для log4j, logback или java.util.logging(или, может быть, для некоторых пользовательских бэкэнд), я сильно работал с настраиваемым конфигуратором "java commons logging", поэтому действительно что-нибудь действительно может быть использовано)
  • Даже без LoggingHandler вы должны увидеть два отладочных сообщения из статического инициализатора org.jboss.netty.channel.socket.nio.SelectorUtil(с Netty версии 3.6.0.Final):

    11:54:00.959 [main] DEBUG o.j.n.c.socket.nio.SelectorUtil - Using select timeout of 500
    11:54:00.962 [main] DEBUG o.j.n.c.socket.nio.SelectorUtil - Epoll-bug workaround enabled = false