2010 年から log4j を使用しています。素晴らしいツールです。新しいソフトウェアでは、同じ構成とライブラリをインポートしましたが、アプリの展開時に、ログ レベル DEBUG で開始します (ただし、デバッグ レベルは設定していません)。 すべての struts2 および hibernate 構成 (約 500 行) をログに記録します! hibernate と struts2 の起動後、最後に、ソフトウェアは init メソッドを呼び出し、loggin レベルを ERROR に設定します。(そしてすべてうまくいきます)
私はこの振る舞いが好きではありません: すべてのログを ERROR レベルですぐに記録したいのです。私の他のすべてのソフトウェアでは、正常に動作します。
私はこの標準的な構成に慣れていました: 私はこれを使用する web.xml で、init メソッドのサーブレットに log4j.properties をロードします (0 と -1 も試しました):
<load-on-startup>1</load-on-startup>
サーブレットのinitメソッド
@Override
public void init() {
PropertyConfigurator.configure(log4j_address);
}
log4j.properties は次のとおりです。
log4j.rootCategory=error, stdout
log4j.logger.org=error
log4j.logger.com=error
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%7p %d{DATE} %-20F:%3L - %m%n