Log4j-configuration
log4j-構成
前の章では、log4jのコアコンポーネントについて説明しました。 この章では、構成ファイルを使用してコアコンポーネントを構成する方法について説明します。 log4jの構成には、レベルの割り当て、アペンダーの定義、および構成ファイル内のレイアウトオブジェクトの指定が含まれます。
*log4j.properties* ファイルは、キーと値のペアでプロパティを保持するlog4j構成ファイルです。 デフォルトでは、LogManagerは *CLASSPATH* で *log4j.properties* という名前のファイルを探します。
- ルートロガーのレベルは DEBUG として定義されています。 DEBUG は、Xという名前のアペンダーをアタッチします。
- Xという名前のアペンダーを有効なアペンダーに設定します。
- アペンダーXのレイアウトを設定します。
log4j.propertiesの構文:
アペンダーXの_log4j.properties_ファイルの構文は次のとおりです。
# Define the root logger with appender X
log4j.rootLogger = DEBUG, X
# Set the appender named X to be a File appender
log4j.appender.X=org.apache.log4j.FileAppender
# Define the layout for X appender
log4j.appender.X.layout=org.apache.log4j.PatternLayout
log4j.appender.X.layout.conversionPattern=%m%n
log4j.propertiesの例
上記の構文を使用して、 log4j.properties ファイルで以下を定義します。
- ルートロガーのレベルは DEBUG 、 FILE という名前の DEBUG アペンダーとして定義されます。
- アペンダー FILE は org.apache.log4j.FileAppender として定義されます。 log ディレクトリにある log.out という名前のファイルに書き込みます。
- 定義されているレイアウトパターンは_%m%n_です。これは、印刷されたログメッセージの後に改行文字が続くことを意味します。
# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE
# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/log.out
# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n
log4jは、$ \ {variableName}などのUNIXスタイルの変数置換をサポートしていることに注意することが重要です。
デバッグレベル
両方のアペンダーでDEBUGを使用しました。 可能なオプションはすべて次のとおりです。
- トレース
- デバッグ
- INFO
- WARN
- エラー
- 致命的
- ALL
これらのレベルについては、このチュートリアルの後半で説明します。
アペンダー
Apache log4jは、コンソール、ファイル、ソケット、NTイベントログなどのさまざまな宛先へのロギングメッセージの印刷を主に担当するAppenderオブジェクトを提供します。
各Appenderオブジェクトには異なるプロパティが関連付けられており、これらのプロパティはそのオブジェクトの動作を示します。
Property | Description |
---|---|
layout | Appender uses the Layout objects and the conversion pattern associated with them to format the logging information. |
target | The target may be a console, a file, or another item depending on the appender. |
level | The level is required to control the filtration of the log messages. |
threshold | Appender can have a threshold level associated with it independent of the logger level. The Appender ignores any logging messages that have a level lower than the threshold level. |
filter | The Filter objects can analyze logging information beyond level matching and decide whether logging requests should be handled by a particular Appender or ignored. |
次の方法で構成ファイルに次の設定を含めることにより、ロガーにAppenderオブジェクトを追加できます。
log4j.logger.[logger-name]=level, appender1,appender..n
次のように、同じ構成をXML形式で記述できます。
<logger name="com.apress.logging.log4j" additivity="false">
<appender-ref ref="appender1"/>
<appender-ref ref="appender2"/>
</logger>
プログラム内にAppenderオブジェクトを追加する場合は、次の方法を使用できます。
public void addAppender(Appender appender);
addAppender()メソッドは、ロガーオブジェクトにアペンダーを追加します。 設定例が示すように、多くのAppenderオブジェクトをカンマ区切りリストのロガーに追加し、それぞれがロギング情報を別々の宛先に印刷することが可能です。
上記の例では、1つのアペンダー_FileAppender_のみを使用しました。 可能なすべてのアペンダーオプションは次のとおりです。
- AppenderSkeleton
- AsyncAppender
- ConsoleAppender
- DailyRollingFileAppender
- ExternallyRolledFileAppender
- FileAppender
- JDBCAppender
- JMSAppender
- LF5Appender
- NTEventLogAppender
- NullAppender
- RollingFileAppender
- SMTPアペンダー
- SocketAppender
- SocketHubAppender
- SyslogAppender
- TelnetAppender
- WriterAppender
FileAppenderはlink:/log4j/log4j_logging_files [Logging in Files]でカバーし、JDBC Appenderはlink:/log4j/log4j_logging_database [Logging in Database]でカバーします。
レイアウト
アペンダーでPatternLayoutを使用しました。 可能なオプションはすべて次のとおりです。
- DateLayout
- HTMLLayout
- パターンレイアウト
- SimpleLayout
- XMLLayout
HTMLLayoutおよびXMLLayoutを使用すると、HTMLおよびXML形式でログを生成できます。
レイアウトのフォーマット
次の章でログメッセージのフォーマット方法を学習します:link:/log4j/log4j_log_formatting [ログのフォーマット]。