log4j.propertiesファイル

log4j.propertiesファイルを変更することによって、log4jロガーのプロパティを変更します。

log4jのデフォルトのプロパティ

デフォルトのlog4j.propertiesファイルには、次の構成が含まれています。
log4j.rootLogger=ERROR,stdout
log4j.logger.com.endeca=INFO
# Logger for crawl metrics
log4j.logger.com.endeca.eidi.web.metrics=INFO

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%p\t%d{ISO8601}\t%r\t%c\t[%t]\t%m%n

ConsoleAppenderのみが指定されており、標準出力はコンソールにリダイレクトされ、ログ・ファイルには出力されません。

ファイルへのログ出力

デフォルトのlog4j.propertiesの構成を変更して、メッセージのログをファイルのみに出力するように構成したり、コンソールとファイルの両方に出力するように構成できます。たとえば、前述の構成を次のように変更できます。
# initialize root logger with level ERROR for stdout and fout
log4j.rootLogger=ERROR,stdout,fout
# set the log level for these components
log4j.logger.com.endeca=INFO
log4j.logger.com.endeca.eidi.web.metrics=INFO

# add a ConsoleAppender to the logger stdout to write to the console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# use a simple message format
log4j.appender.stdout.layout.ConversionPattern=%m%n

# add a FileAppender to the logger fout
log4j.appender.fout=org.apache.log4j.FileAppender
# create a log file
log4j.appender.fout.File=crawl.log
log4j.appender.fout.layout=org.apache.log4j.PatternLayout
# use a more detailed message pattern
log4j.appender.fout.layout.ConversionPattern=%p\t%d{ISO8601}\t%r\t%c\t[%t]\t%m%n

この例では、FileAppenderによって、crawl.logという名前のログ・ファイルにログ・イベントが追加記録されます(このログ・ファイルは現在の作業ディレクトリに作成されます)。ConsoleAppenderは、単純なパターンを使用してコンソールに出力します。この場合、メッセージのみが出力され、より詳細な情報(ロギング・レベル、タイムスタンプなど)は出力されません。

さらには、コンポーネントのロギング・レベルを次のいずれかに変更できます。
  • DEBUG: クロールの構成をデバッグするのに非常に役立つ、詳細な情報イベントを指定します。
  • TRACE: DEBUGよりも詳細な情報イベントを指定します。
  • ERROR: クローラが引き続き実行可能なレベルのエラー・イベントを指定します。
  • FATAL: クローラの停止につながる可能性のある非常に重大なエラー・イベントを指定します。
  • INFO: クローラの進捗状況をおおまかなレベルで示す情報メッセージを指定します。
  • OFF: 最高ランクの設定であり、ログをオフにします。
  • WARN: 問題を引き起こす可能性のある状況を指定します。
これらのレベルを選択することによって、関係のない大量のメッセージに圧倒されることなく、関心のあるイベントを適切な精度で監視できるようになります。最初にクロールを構成するときはDEBUGレベルを使用してすべてのメッセージを出力し、運用環境ではそれほど詳細ではないレベルに変更するという方法が考えられます。

デフォルトのlog4j.propertiesファイルにはいくつかの推奨コンポーネント・ロガーが含まれており、それらはコメント・アウトされています。それらのロガーを使用するには、コメント記号(#)を削除します。