Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to configure netty logger factory in order to see the output of LoggingHandler?

Tags:

slf4j

netty

I am using slf4j logging with logback and at the beginning of my app I wrote

InternalLoggerFactory.setDefaultFactory(new Slf4JLoggerFactory());

then I added to the pipeline a new LoggingHandler(InternalLogLevel.DEBUG) instance. Unfortunately, this still does not log anything, I was debugging into and the debug level is the problem, just skips the logging itself.

How should I setup to get working this LoggingHandler?

like image 280
Tibor Kiss Avatar asked Mar 24 '12 14:03

Tibor Kiss


1 Answers

I have done a small example, that does work - I placed it on gist on github. It uses logback as the backend of the slf4j. The moments that should be paid attention to are:

  • InternalLoggerFactory.setDefaultFactory(Slf4JLoggerFactory.INSTANCE); should be executed right on the entry point of your program. Sometimes this "entry point" may be very hard to determine.
  • Proper configuration of slf4j backend. Since slf4j is only a wrapper it does not deal with configuration at all - it is specific for log4j, logback or java.util.logging (or maybe some custom backend - I have worked heavily with the custom "java commons logging" configurator, so really anything really can be used)
  • Even without LoggingHandler you should see two debug messages from static initializer of org.jboss.netty.channel.socket.nio.SelectorUtil (with Netty version 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
    
like image 115
Ivan Sopov Avatar answered Oct 03 '22 07:10

Ivan Sopov