1. ホーム
  2. ログ4J

[解決済み】log4jを正しく初期化する方法は?

2022-03-30 10:59:02

質問

私のアプリケーションにlog4jを追加した後、私は私のアプリケーションを実行するたびに、次の出力を得る。

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

これは、設定ファイルが足りないということのようです。 この設定ファイルはどこにあるべきでしょうか、また、どのような内容から始めるのが良いでしょうか。

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

どのように解決するのですか?

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