如何配置netty logger工厂以查看LoggingHandler的输出?
我正在使用带有logback的slf4j日志记录,在我的应用程序开始时,我编写了如何配置netty logger工厂以查看LoggingHandler的输出?,netty,slf4j,Netty,Slf4j,我正在使用带有logback的slf4j日志记录,在我的应用程序开始时,我编写了 InternalLoggerFactory.setDefaultFactory(new Slf4JLoggerFactory()); 然后,我向管道中添加了一个新的LoggingHandler(InternalLogLevel.DEBUG)实例。 不幸的是,这仍然没有记录任何东西,我是调试到和调试级别的问题,只是跳过记录本身 我应该如何设置才能使用此LoggingHandler?我已经做了一个小示例,它确实有效-
InternalLoggerFactory.setDefaultFactory(new Slf4JLoggerFactory());
然后,我向管道中添加了一个新的LoggingHandler(InternalLogLevel.DEBUG)
实例。
不幸的是,这仍然没有记录任何东西,我是调试到和调试级别的问题,只是跳过记录本身
我应该如何设置才能使用此
LoggingHandler
?我已经做了一个小示例,它确实有效-我将它放在了上面。它使用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)静态初始值设定项的两条调试消息:
slf4j api.jar
和sl4j
(如logback
)的一些实现?您还需要在特定于实现的配置文件中配置日志级别(如logback.xml
forlogback
)。您可以尝试将上面的代码行放入static{}
初始化代码块中吗?但是Netty没有使用我的根记录器,我有以下命令:10:36:40447 |-在记录器中发出警告[io.netty.channel.MultithreadEventLoopGroup]-记录器[io.netty.channel.MultithreadEventLoopGroup]的上下文[default]中不存在任何附加程序。Slf4JLoggerFactory似乎不受欢迎。您需要使用InternalLoggerFactory.setDefaultFactory(Slf4JLoggerFactory.INSTANCE)改为
。注意添加LoggingHandler
类似于LoggingHandler(InternalLogLevel.DEBUG)
如图所示,将记录器名称设置为LoggingHandler
的FQN,这几乎总是不可取的。要设置记录器名称,请将类
或字符串
作为第一个参数传递。
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