2009-11-12 22 views
52

私は、次のバグが発生しました:Log4jを使用してパッケージのログレベルを変更するにはどうすればよいですか?

http://issues.apache.org/jira/browse/AXIS2-4363

それは次のように述べ:

org.apache.axiomのログレベル はDEBUGがそう 回避策であるとき、このエラーが発生しますログレベル> DEBUGを設定することです。

私の質問はどうすればいいのですか?私はプロパティファイルなどのためにディレクトリを精練していましたが、コードで設定できるものがあるかどうかを調べていましたが、実際に何をしているのかわかりません。これを動作させようとしている間、私は今デスクトップ上でコンソールアプリケーションを実行しています。

更新1:私のAxis2ディレクトリには、ルートに独自のlog4j.propertiesファイルがあることに気付きました。これは安全に無視されるのですか、それとも解決策の一部(または問題の一部)ですか?

更新2:ルートレベルのlog4j.propertiesファイルが正しく設定されていません。今のところ、それは次のようになります。

log4j.rootLogger=DEBUG, R 
log4j.logger.org.apache.axiom=WARN 
log4j.appender.R=org.apache.log4j.RollingFileAppender 
log4j.appender.R.MaxFileSize=10MB 
log4j.appender.R.MaxBackupIndex=10 
log4j.appender.R.layout=org.apache.log4j.PatternLayout 
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n 

が、このコードは、「ログレベルがnull」を返すよう、それは明らかに間違っている:

System.out.println("Log level is " + logger.getLevel()); 

今私は

を使用してコード内のログレベルを設定していますについて
Logger logger = Logger.getLogger("org.apache.axiom"); 
logger.setLevel(Level.WARN); 
+0

私はまだこれで問題を抱えている - 私は、コンソールアプリケーションのルートにlog4j.propertiesファイルを追加しましたが、どちらも追加 log4j.rootLogger =、R または をWARN log4j.logger.org.apache.axiom = WARNています 何かをするようです - 以前と同じエラーが発生します。 –

答えて

52

どのアプリケーションサーバーを使用していますか? Log4Jまたはjava.util.loggingのいずれかのラッパーとしてCommons-Loggingを使用していますが、現在のところ、Log Inはそれぞれ別の場所に配置されています。

例としてTomcatを使用すると、this documentはいずれかのオプションを使用してログを設定するオプションについて説明しています。いずれの場合でも、各パッケージのログレベルを定義する設定ファイルを検索または作成し、ロギングシステムがログ情報(通常はコンソール、ファイル、またはデータベース)を出力する場所を見つける必要があります。

のlog4jの場合には、これは、log4j.propertiesファイルになり、そしてあなたがあなたのファイル上記のリンクの指示に従った場合のように見えるアウトを開始します:

log4j.rootLogger=DEBUG, R 
log4j.appender.R=org.apache.log4j.RollingFileAppender 
log4j.appender.R.File=${catalina.home}/logs/tomcat.log 
log4j.appender.R.MaxFileSize=10MB 
log4j.appender.R.MaxBackupIndex=10 
log4j.appender.R.layout=org.apache.log4j.PatternLayout 
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n 

最も簡単なのは行を変更することであろう:のような何かに

log4j.rootLogger=DEBUG, R 

log4j.rootLogger=WARN, R 

しかし、あなたはまだあなたのOをしたい場合Log4JCommons-Loggingにビットを読む

log4j.category.com.mypackage=DEBUG 

あなたはこのすべてを理解するのに役立ちます:自分のクラスからWN DEBUGレベルの出力は述べている行を追加します。

+0

今、私はちょうどコンソールアプリケーションとしていくつかのコードを実行しようとしています。 log4j.propertiesファイルのどこに行かなければならないか分かりますか?ありがとう。 –

+1

+1良い情報、ありがとう –

+3

カテゴリーはlog4jでloggerで非推奨にされました – janwen

7

今日、まったく同じ問題が発生しました。

SRC(またはルート)ディレクトリには、私のlog4j.propertiesファイルには、以下の追加を持っアップこれを行う方法のようにヘッドの

# https://issues.apache.org/jira/browse/AXIS2-4363 
log4j.category.org.apache.axiom=WARN 

おかげで、ベンジャミン。

3

この作品私のために:

log4j.logger.org.hibernate.type=trace 

もが試すことができます。

log4j.category.org.hibernate.type=trace 
0

は、真のシステムプロパティlog4j.debug =を設定します。次に、設定がどこで実行されているかを判断できます。

2

私はちょうど問題に遭遇し、上記をすべて読み込んだ後でも何がうまくいかないのか分からなかった。私がやったことは、各ロギング実装DEBUG


  • 設定されたパッケージログレベルを警告する

    1. 設定ルートロガーのレベルは、それがプロパティを介して、またはコードを経由して、それを設定する独自の方法(多くのしているましたヘルプの利用可能)

      上記のすべてにかかわらず、私はコンソールまたはログファイルにログを取得しません。私が見落としていたことは、以下の...


      enter image description here


      私は上記の手品をやっていたすべてのルート/パッケージ/クラスなどで(ログのみ生産を制御しました)、上記の画像の赤い線の左側。しかし、私は上の画像の赤い線の右の、同じもののログの表示/消費の方法を変更していませんでした。 Handler(Consumption)は通常INFOでデフォルト設定されているので、貴重なデバッグステートメントは通らないでしょう。消費/表示は、Handlers(ConsoleHandler/FileHandlerなど)のログレベルを設定することによって制御されます。そのため、すべてのハンドラのログレベルを最高に設定し、すべてが機能しました。

      この点は、どのような場所でも正確にはっきりとしていませんでした。

      私は誰かが自分の頭を傷つけて、なぜプロパティが機能していないのかと考えて、このビットが役立つことを願っています。

  • 関連する問題