2016-10-26 32 views
0

我正在使用Netty 4.1.6。 是否可以使用log4j2作为内部记录器来设置netty? Eclipse提示我以下语句折旧。Netty内部记录器问题

InternalLoggerFactory.setDefaultFactory(new Log4J2LoggerFactory()); 

你能告诉我该怎么做吗?

+1

为[Log4J2LoggerFactory](https://github.com/netty/netty/blob/eb7f751ba519cbcab47d640cd18757f09d077b55/common/src/main/java/io/netty/util/internal/logging/Log4J2LoggerFactory的源代码。 java)声明“@deprecated使用{@link #INSTANCE}来代替。”所以你可能应该使用'InternalLoggerFactory.setDefaultFactory(Log4J2LoggerFactory.INSTANCE);' 这是根据[PR 5047](https://github.com/netty/netty/pull/5047)中的讨论和以下讨论看起来他们想让所有的日志实现单例类 – Ferrybig

回答

0

感谢Ferrybig的小费。

我正在详细说明如何在log4j2上做到这一点。

在您执行Netty服务器引导之前,请在上面插入此行。

InternalLoggerFactory.setDefaultFactory(Log4J2LoggerFactory.INSTANCE); 
ServerBootstrap b = new ServerBootstrap(); 
b.option(ChannelOption.SO_BACKLOG, 1024); 
b.group(bossGroup, workerGroup) 
.channel(NioServerSocketChannel.class) 
.handler(new LoggingHandler(LogLevel.INFO)) 
.childHandler(new ... 

然后在log4j2.xml上有记录器和相应的Appender。

<Logger name="io.netty" level="INFO" additivity="false"> 
    <AppenderRef ref="nettyTrace"/> 
</Logger>