2011-07-22 12 views
4

私は、Webアプリケーションのいくつかの動作をログに記録したいと思います。これも、休止状態、春などを実装しています。私がApacheからlog4j loggerを実装しようとしたとき、私はいくつかの問題を抱えていました。デバッグ出力を持つパッケージをいくつか指定してください。

ロガーをオンにすると、嫌いな冬眠や春もデバッグされます。プロジェクトのパッケージを指定するためにプロパティファイルを設定しようとしましたが、動作しません。ここで

は、プロパティファイルの私のコードです:

log4j.rootCategory=ERROR, O 
log4j.category.com.my.package= DEBUG, FILE, O 
log4j.appender.FILE=org.apache.log4j.RollingFileAppender 
log4j.appender.FILE.File=log/logger.log 
log4j.appender.O=org.apache.log4j.ConsoleAppender 
.... and some layout 

私はrootCategory = DEBUGを切り替えるが、私が言ったように、それはまた、休止状態と春をデバッグする際には動作します。あなたはロガーカテゴリ(廃止)に切り替える必要があります

log4j.logger.org.hibernate=info 
log4j.logger.org.springframework=info 
log4j.logger.com.yourapplication=debug 

注:

+0

これは、Hibernateで助けるかもしれない:http://stackoverflow.com/questions/2077377/cant-stop-hibernate-from-writing-log-to-console-log4j-properties-is-ok –

+0

あなたを作成するにはどうすればよいです'Logger'オブジェクト? –

+0

@ kmb385あなたのリンクが私を大いに助けます。ありがとう – Smolda

答えて

11

はい、あなたは、パッケージごとにログレベルをspecfiyする必要があります。だから、log4j.rootLogger=...

+1

なぜrootロガーに 'ERROR'を指定するだけで、デバッグが必要な特定のパッケージに対して' DEBUG'を指定するのはなぜですか? –

+0

@ケビン私は理由を知らないが、それは私のためにそのように動作しません。 – Smolda

2

あなたが実際にものを書いているロガーの名前を知っておく必要があるだろう...最も簡単な方法は、エラーにルートカテゴリを設定することです:

log4j.rootCategory=ERROR, 0 

その後、あなたのログのレベルを設定しますそれに応じて:あなたは、特に設定しない限りDEBUGrootCategoryを設定

log4j.com.your.package=DEBUG... 

は、DEBUGすべてをオンにしますそうでなければロガー。

B.T.W、これは休止状態の問題ではなく、これはロガーの設定方法に関連しています。

+0

これは正しい答えですが、質問者が 'com.your.package.foo.bar'のようなロガーオブジェクトの名前を付けていないので、DEBUG設定行は効果がありません。 –

関連する問題