2012-03-24 3 views
12

私はlogbackでSLF4Jロギングを使用していますし、私のアプリの初めに、私はLoggingHandlerの出力を見るためにnetty logger factoryを設定するには?

InternalLoggerFactory.setDefaultFactory(new Slf4JLoggerFactory()); 

を書いた後、私は、パイプラインに新しいLoggingHandler(InternalLogLevel.DEBUG)インスタンスを追加しました。 残念ながら、これはまだ何もログに記録されませんでした。私はデバッグしていましたが、デバッグレベルが問題です。ロギング自体をスキップします。

この作業を行うにはどうすればよいですか?LoggingHandler

+0

DEBUGの問題点についてもう少し詳しく教えてください。 –

+0

DEBUGレベルでのロギングがうまくいかない理由はありません。あなた自身がDEBUGレベルでログを記録しますか?もしそうなら、問題を再現する特定のコードを教えてください。 – trustin

+0

プロジェクトのクラスパスに 'slf4j-api.jar'と' sl4j'( 'logback'など)の実装がありますか?また、実装固有の設定ファイル( 'logback'の' logback.xml'など)でログレベルを設定する必要があります。 –

答えて

10

私は小さな例を行いました。それはうまくいきます - 私はそれをgist on githubに置きました。これは、slf4jのバックエンドとしてlogbackを使用します。注意を払わなければならない瞬間がある:

  • InternalLoggerFactory.setDefaultFactory(new Slf4JLoggerFactory());は、右のあなたのプログラムのエントリポイントで実行する必要があります。時には、この「エントリーポイント」を決定するのが非常に難しいかもしれません。
  • slf4jバックエンドの適切な設定。 slf4jは単にラッパーであるため、設定をまったく扱わないので、log4j、logback、またはjava.util.logging(またはカスタムバックエンドに特化しています。カスタム "java commons logging"コンフィグレータを使用しています。実際に使用することができ、本当に何でも)
  • でもLoggingHandlerずにorg.jboss.netty.channel.socket.nio.SelectorUtilの静的初期化子から2件のデバッグメッセージが表示されるはずです(ネッティーバージョン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 
    
+0

Nettyは私のルートロガーを使用していませんが、私は以下を持っています:10:3​​6:40,447 | -WARN Logger [io.netty.channel.MultithreadEventLoopGroup] - ロガー[io.netty]のコンテキスト[default]にアペンダーは存在しません。 channel.MultithreadEventLoopGroup]。 – Edmondo1984

+0

この解決策は私には役に立ちます。 – JBT

関連する問題