8

Spring 3.1 の log4j ロギングをオフにしたいのですが、自分のコードのデバッグはそのままにしておきます。

この行をlog4j.propertiesに貼り付けてみました:

log4j.category.org.springframework = WARN 

これを取得するには:

# Root Logger Setup:  Includes the level of reporting and appenders -> where
#                     log messages get sent                                              
log4j.rootLogger                            = DEBUG,ca,fa

log4j.category.org.springframework = WARN

#ca - Console Appender - Send messages to the console
log4j.appender.ca                          = org.apache.log4j.ConsoleAppender
log4j.appender.ca.layout                   = org.apache.log4j.PatternLayout
log4j.appender.ca.layout.ConversionPattern = [acme]: [%-5p] - %d{yyyy-MMM-dd HH:mm:ss} -  %c{1}:%M(): %m%n



#fa - File Appender - Send messages to a log file
log4j.appender.fa                            = org.apache.log4j.RollingFileAppender
log4j.appender.fa.File                       = acme.log
log4j.appender.fa.MaxFileSize                = 100KB
log4j.appender.fa.MaxBackupIndex             = 10
log4j.appender.fa.Threshold                  = DEBUG
log4j.appender.fa.layout                     = org.apache.log4j.PatternLayout
log4j.appender.fa.layout.ConversionPattern   = [%-5p] - %d{yyyy-MMM-dd HH:mm:ss} -  %c{2}:%M(): %m%n 

ただし、Spring からのデバッグ出力を遮断することはできません。

助けてくれてありがとう

スティーブ

4

2 に答える 2

8

すべての依存関係は整っていますか?

1.3.2.3 Log4Jの使用

多くの人が、構成と管理の目的で Log4j をロギング フレームワークとして使用しています。これは効率的で確立されており、実際、Spring をビルドおよびテストするときに実行時に使用するものです。Spring は、Log4j を構成および初期化するためのいくつかのユーティリティも提供するため、一部のモジュールでは、Log4j に対するオプションのコンパイル時の依存関係があります。

Log4j をデフォルトの JCL 依存関係 (commons-logging) で動作させるには、Log4j をクラスパスに配置し、構成ファイル (クラスパスのルートにある log4j.properties または log4j.xml) を提供するだけです。したがって、Maven ユーザーの場合、これは依存関係の宣言です。

<dependencies>
   <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>3.0.0.RELEASE</version>
      <scope>runtime</scope>
   </dependency>
   <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.14</version>
      <scope>runtime</scope>
   </dependency>
</dependencies> 

コンソールにログを記録するための log4j.properties のサンプルを次に示します。

log4j.rootCategory=INFO, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %t %c{2}:%L - %m%n

log4j.category.org.springframework.beans.factory=DEBUG
于 2012-06-06T16:19:43.567 に答える
1

私はこれを理解しました。

私のクラスパスには、さまざまなことを試しているときに便利なように、ディレクトリ C:\Classes があります。そこに別の log4.properties ファイルがありました。これは、WAR にパッケージ化されたものに取って代わり、以下の手法が機能していないように見えました。C:\Classes の log4.properties の名前を変更しましたが、すべて問題ありません。

見てくれた皆さん、そしてこれを必要とさせてくれたSpring Sourceの人々に感謝します。ブラック ボックスを取得するだけでなく、必要なときに広範なレベルのデバッグを簡単に利用できることを知っておくとよいでしょう。

于 2012-06-08T16:47:29.480 に答える