如何配置netty logger工厂以查看LoggingHandler的输出?

时间:2012-03-24 14:22:25

标签: netty slf4j

我正在使用带有logback的slf4j日志记录,并且在我的应用程序开头我写了

InternalLoggerFactory.setDefaultFactory(new Slf4JLoggerFactory());

然后我在管道中添加了一个新的LoggingHandler(InternalLogLevel.DEBUG)实例。 不幸的是,这仍然没有记录任何东西,我正在调试,调试级别是问题,只是跳过日志本身。

我应该如何设置才能使用LoggingHandler

1 个答案:

答案 0 :(得分:10)

我做了一个小例子,确实有效 - 我把它放在gist on github上。它使用logback作为slf4j的后端。应该注意的时刻是:

  • InternalLoggerFactory.setDefaultFactory(Slf4JLoggerFactory.INSTANCE);应该在程序的入口点上执行。有时这个“切入点”可能很难确定。
  • 正确配置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