log4j-構成
前の章では、log4jのコアコンポーネントについて説明しました。この章では、構成ファイルを使用してコアコンポーネントを構成する方法について説明します。log4jの構成には、レベルの割り当て、アペンダーの定義、および構成ファイルでのレイアウトオブジェクトの指定が含まれます。
ザ・ log4j.propertiesfileは、プロパティをキーと値のペアで保持するlog4j構成ファイルです。デフォルトでは、LogManagerはという名前のファイルを検索しますlog4j.properties の中に CLASSPATH。
ルートロガーのレベルは次のように定義されます。 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、 DEBUG 名前の付いたアペンダー FILE それに。
アペンダー FILE と定義されている org.apache.log4j.FileAppender。名前の付いたファイルに書き込みますlog.out にあります log ディレクトリ。
定義されたレイアウトパターンは%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を使用しました。可能なすべてのオプションは次のとおりです。
- TRACE
- DEBUG
- INFO
- WARN
- ERROR
- FATAL
- ALL
これらのレベルについては、このチュートリアルの後半で説明します。
アペンダー
Apache log4jは、コンソール、ファイル、ソケット、NTイベントログなどのさまざまな宛先へのログメッセージの印刷を主に担当するAppenderオブジェクトを提供します。
各Appenderオブジェクトには異なるプロパティが関連付けられており、これらのプロパティはそのオブジェクトの動作を示します。
プロパティ | 説明 |
---|---|
レイアウト | Appenderは、レイアウトオブジェクトとそれに関連付けられた変換パターンを使用して、ログ情報をフォーマットします。 |
目標 | ターゲットは、アペンダーに応じて、コンソール、ファイル、または別のアイテムになります。 |
レベル | このレベルは、ログメッセージのフィルタリングを制御するために必要です。 |
しきい値 | アペンダーは、ロガーレベルとは関係なく、しきい値レベルを関連付けることができます。アペンダーは、しきい値レベルよりも低いレベルのログメッセージを無視します。 |
フィルタ | Filterオブジェクトは、レベルマッチングを超えてロギング情報を分析し、ロギング要求を特定のアペンダーが処理するか無視するかを決定できます。 |
次のメソッドを使用して構成ファイルに次の設定を含めることにより、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()メソッドは、LoggerオブジェクトにAppenderを追加します。構成例が示すように、多くのAppenderオブジェクトをコンマ区切りのリストでロガーに追加し、それぞれがログ情報を別々の宛先に出力することができます。
上記の例では、1つのアペンダーFileAppenderのみを使用しました。可能なすべてのアペンダーオプションは次のとおりです。
- AppenderSkeleton
- AsyncAppender
- ConsoleAppender
- DailyRollingFileAppender
- ExternallyRolledFileAppender
- FileAppender
- JDBCAppender
- JMSAppender
- LF5Appender
- NTEventLogAppender
- NullAppender
- RollingFileAppender
- SMTPAppender
- SocketAppender
- SocketHubAppender
- SyslogAppender
- TelnetAppender
- WriterAppender
私たちは中にFileAppenderをカバーするファイルにログでカバーされるだろうとJDBCのAppenderデータベースにログ記録。
レイアウト
アペンダーでPatternLayoutを使用しました。可能なすべてのオプションは次のとおりです。
- DateLayout
- HTMLLayout
- PatternLayout
- SimpleLayout
- XMLLayout
HTMLLayoutとXMLLayoutを使用すると、HTMLおよびXML形式でログを生成することもできます。
レイアウトのフォーマット
ログメッセージのフォーマット方法については、「ログのフォーマット」の章で学習します。