60

次のバグに遭遇しました。

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);
4

5 に答える 5

65

どのアプリサーバーを使用していますか? それぞれがログ構成を別の場所に置きますが、最近ではほとんどが Log4J または java.util.logging のラッパーとして Commons-Logging を使用しています。

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

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

ただし、独自のクラスから独自の DEBUG レベルの出力が必要な場合は、次の行を追加します。

log4j.category.com.mypackage=DEBUG

Log4JCommons-Loggingを少し読むと、これらすべてを理解するのに役立ちます。

于 2009-11-12T23:13:19.010 に答える
9

私は今日まったく同じ問題に遭遇しました、ライアン。

src (またはルート) ディレクトリで、log4j.propertiesファイルに次のものが追加されました。

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

これを行う方法について頭を上げてくれてありがとう、ベンジャミン。

于 2010-07-07T06:53:10.100 に答える
6

これは私のために働きます:

log4j.logger.org.hibernate.type=trace

また、試すことができます:

log4j.category.org.hibernate.type=trace
于 2012-06-14T13:18:04.203 に答える
3

私は問題に遭遇したばかりで、上記のすべてとそこにあるすべてを読んだ後でも、何が問題なのかを理解できませんでした. 私がしたことは

  1. ルート ロガー レベルを WARN に設定します
  2. パッケージのログ レベルを DEBUG に設定する

各ロギングの実装には、プロパティまたはコードを介して設定する独自の方法があります(これについては多くのヘルプが利用可能です)

上記のすべてに関係なく、コンソールまたはログ ファイルにログが表示されません。私が見落としていたのは以下でした...


ここに画像の説明を入力


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

この点は、どこにも正確には明らかにされていません。

プロパティが機能しない理由を考えて頭を悩ませている人が、これが少し役立つことを願っています。

于 2017-09-24T20:51:32.253 に答える