2009-09-04 10 views
3

ロギングAPIでルートロガーの動作を設定するにはどうすればよいですか?私は各ロガーの動作を個別に設定するのではなく、すべてのロガーの動作を設定できる単一のプロパティファイルがあれば非常に便利です。JavaロギングAPIでルートロガーを設定する

+0

getLogger( "")を使用してルートログにアクセスできないのはなぜですか?その後、メインクラスのログだけが出力を生成します –

答えて

-8

Apache Commons Loggingまたはlog4jを直接使用することをお勧めします。はるかに快適でフレキシブルです。

EDIT:あなたはプロパティファイルからログを設定したい場合は

、あなたはVinay Sajip's answerに行く必要があります。あなたのプログラム内のルートロガーを取得し、APIを使用して、それを構成するには、あなたは、「」という名前のロガーを求めることができ、それはhere

private final static Logger logger = Logger.getLogger(""); 
+3

なぜそれはずっと快適ですか?私はロギングAPIを使ってロギングするためのすべてを設定しましたが、すべてを変更するのは快適ではありません。 –

+0

@Xelluloid:はい、そうです。最初にlog4jを使用した方が快適です。私はあなたがすでにこのようなことを変えるために遠くに行ったことを知らなかった...悪い。 –

+1

これは私のコメントの下で私のコメントの下で私のコメントで述べたように動作しません私は ""あなたがおかげで –

3

言うように私はあなたがjava.util.logging(7月)の実装を意味推測:もしそうなら、 Java Almanacの関連部分を見てください。 JUL構成の概要情報はhereです。基本的には、のアプローチはすべてのロガーに単一の構成ファイルを使用するためにです。

更新: jschoenのコメントで説明したように、もう有効ではなくなったため(リンクロストが再び発生する)、Javaアルマナックへのリンクが削除されました。代わりの情報源を見つけるためにGoogleを使用してください。あなたは今、他のロガーとしてルートロガーにアクセスすることができます

Logger system = Logger.getLogger(""); 

+0

悪い日にそれを捕まえたのかどうかわかりませんが、Java Almanacへのリンクが壊れているようです。 –

2

はルートロガーを取得するには、以下を使用します。

私の場合、私はそれを静かにしていました。私は次のコードでそれを行うことに成功しました:

private static void setLevel(Logger pLogger, Level pLevel) { 
    Handler[] handlers = pLogger.getHandlers(); 
    for (Handler h : handlers) { 
     h.setLevel(pLevel); 
    } 
    pLogger.setLevel(pLevel); 
} 

... 

setLevel(system, Level.OFF); 

希望します。

関連する問題