log4j を適切に初期化するにはどうすればいいですか? 質問する

log4j を適切に初期化するにはどうすればいいですか? 質問する

アプリケーションに log4j を追加した後、アプリケーションを実行するたびに次の出力が表示されます。

log4j:WARN ロガー (slideselector.facedata.FaceDataParser) のアペンダーが見つかりませんでした。
log4j:WARN log4j システムを適切に初期化してください。

これは、構成ファイルが見つからないことを意味しているようです。この構成ファイルはどこに配置すればよいですか? また、適切な開始コンテンツは何ですか?

デスクトップ アプリケーションの開発には、プレーンな Java を使用しています。そのため、Web サーバーなどはありません。

ベストアンサー1

Log4jデフォルトでは、クラスパス上でlog4j.propertiesまたは と呼ばれるファイルを検索します。log4j.xml

前述のようにシステムプロパティを設定することで、初期化に使用するファイルを制御できます。ここ(「デフォルトの初期化手順」セクションを参照してください)。

例えば:

java -Dlog4j.configuration=customName ....

log4jクラスパス上で customName というファイルを検索します。

問題が発生した場合は、log4j.debug をオンにすると役立つと思います。

-Dlog4j.debug

初期化に使用されたファイル、設定されたロガー/アペンダーとその設定方法など、多くの役立つ情報が System.out に出力されます。

設定ファイルはJavaプロパティファイルまたはXMLファイルです。以下は、以下のプロパティファイル形式のサンプルです。log4j 入門ドキュメントページ:

log4j.rootLogger=debug, stdout, R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log

log4j.appender.R.MaxFileSize=100KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex=1

log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n

おすすめ記事