Apache log4j 構成ファイルの操作
Apache log4j パッケージ (org.apache.log4j) では、アプリケーション・コードの変更や再コンパイルの必要がない、ロギング動作、優先度レベル、および出力フォーマット用の手段が提供されます。アプリケーションの初期化時に、log4j は Java™ 2 Enterprise Edition (J2EE) モジュールのクラスパス内で log4j.properties という構成プロパティー・ファイルを探します。 この検索は静的初期化時に行われ、プロパティー・ファイルには XML 形式または Java プロパティー形式 (keyword=value のペア) で書き込むことができます。log4j 構成ファイルの変更では、クライアント・アプリケーション用にロギングを構成するために提供されたサンプル・ファイルを変更する方法について説明します。
log4j 構成ファイルのサンプル
Content Engine のインストール時に、システムの ContentEngine¥config¥samples¥ フォルダーに以下の 2 つの log4j サンプル・ファイルが配置されます。
- log4j.properties.client: クライアント構成の設定を含む Java 形式ファイル。
- log4j.xml.server: サーバー構成の設定を含む XML 形式ファイル。
log4j の機能を使用するには、これらの構成ファイルを ContentEngine¥config¥ フォルダーに、それぞれの接尾部の拡張子を除去して log4j.properties および log4j.xml としてコピーします。 これで、ContentEngine¥config¥ フォルダーにコピーした構成ファイルに、要件に応じて変更を加えることができます。 アプリケーションの初期化時に、log4j は検索操作を実行して、ContentEngine¥config¥log4j.properties ファイルを見つけて自動的に読み取ります。
以降のセクションでは、サンプルの log4j.properties ファイル内の各種ステートメントを変更して log4j を構成する方法について説明します。XML 形式ファイルの操作の詳細については、Apache log4j の資料を参照してください。
log4j 構成ファイルの変更
ロギング動作 (ログに記録する対象、ロギング機能の有効化と無効化、出力ターゲット、および出力のフォーマット設定) は構成可能であり、実行時に設定できます。 Java 形式の構成ファイルでは、log4j パッケージはロギング動作を制御するために keyword=value のペアを検索します。ユーザーはトレース・レベル のロギング機能を実行する対象のサブシステムと、ロギング項目に含めるエラー・ロギングのレベルを決定し、適切な値を properties ファイルに指定します。詳細については、レベル継承の使用を参照してください。 ローカルとリモートのどちらでも、多数のタイプの出力場所にログ項目を記録するよう log4j を構成でき、使用する出力場所のタイプを構成オプションで指定できます。
データ収集のためのルート・ロギング操作の指定
rootLogger log4j キーワードは log4j パッケージのコア・クラスを表し、ロガー階層の最上位エンティティーです。割り当てられた ERROR レベルが、明示的なレベル設定を持たない、またはロガー階層内に継承元の祖先を持たない、すべての子ロガーで使用されます。
rootLogger は、以下に示すように log4j.properties ファイル内で最初に指定されるキーワードです。
################################################################################
# Root logger
################################################################################
log4j.rootLogger=off, FileNetNullAppender
提供されるサンプル・ファイルでは、rootLogger は FileNetNullAppender を使用するようにも構成されています。これについては、次のサブセクションで詳しく説明します。
アペンダーの使用によるデータの書き込み先の指定
appender は、指定された出力先にフォーマットされたログ項目を送信します。可能性のある宛先タイプとしては、ファイルまたはコンソールが考えられます。 ログ項目を Windows イベント・ロガーに送信するか、リモート log4j サーバーに転送することもできます。 (すべての出力宛先オプションについては、log4j の資料を参照してください。)
単一のロガーに複数のアペンダーを付加できます。例えば、出力をコンソールに書き込む一方で、保存可能なバックアップ・ファイルにも書き込むことができます。ロガーは有効にされたロギング要求を各アペンダーに書き込みます。
提供された log4j.properties ファイルでは、FileNet® は以下のデフォルトのアペンダーを指定しています。
- FileNetNullAppender: ログ・メッセージのフォーマットを行いますが、どこにも書き込みません (log4j varia.NullAppender のデフォルト動作)。
- FileNetConsoleAppender: ログ・メッセージをデフォルトの log4j コンソール (ConsoleAppender) に送信します。
- FileNetErrorAppender: WARN、ERROR、および INFO レベルのエラー・メッセージを /p8_api_error.log ファイルに書き込みます。
- FileNetTraceAppender: DEBUG レベルおよびすべてのトレース・ログ・メッセージを /p8_api_trace.log ファイルに書き込みます。
- FileNetErrorRollingAppender: 指定された FileNetErrorAppender ファイルが指定された最大サイズの 100 MB を超えた場合に、ファイルのバックアップをデフォルトの log4j RollingFileAppender の場所に書き込みます。
- FileNetTraceRollingAppender: 指定された FileNetTraceAppender ファイルが指定された最大サイズの 100 MB を超えた場合に、ファイルのバックアップをデフォルトの log4j RollingFileAppender の場所に書き込みます。
################################################################################
# Appenders
################################################################################
#=== FileNetNullAppender
log4j.appender.FileNetNullAppender=org.apache.log4j.varia.NullAppender
#=== FileNetConsoleAppender
log4j.appender.FileNetConsoleAppender=org.apache.log4j.ConsoleAppender
...
#=== FileNetErrorAppender
log4j.appender.FileNetErrorAppender=org.apache.log4j.FileAppender
log4j.appender.FileNetErrorAppender.File=/p8_api_error.log
...
#=== FileNetTraceAppender
log4j.appender.FileNetTraceAppender=org.apache.log4j.FileAppender
log4j.appender.FileNetTraceAppender.File=/p8_api_trace.log
...
#=== FileNetErrorRollingAppender
log4j.appender.FileNetErrorRollingAppender=org.apache.log4j.RollingFileAppender
log4j.appender.FileNetErrorRollingAppender.File=/p8_api_error.log
log4j.appender.FileNetErrorRollingAppender.MaxFileSize=100MB
log4j.appender.FileNetErrorRollingAppender.MaxBackupIndex=1
...
#=== FileNetTraceRollingAppender
log4j.appender.FileNetTraceRollingAppender=org.apache.log4j.RollingFileAppender
log4j.appender.FileNetTraceRollingAppender.File=/p8_api_trace.log
log4j.appender.FileNetTraceRollingAppender.MaxFileSize=100MB
log4j.appender.FileNetTraceRollingAppender.MaxBackupIndex=1
...
アペンダーの詳細については、「トレース・ロギングのアペンダー名」を参照してください。
レイアウトの使用による収集データのフォーマットの指定
Appender の構成には、layout キーワードを含められます。Layout 抽象クラスは、指定された基準に従って Appender 出力をフォーマット設定するために使用し、以下のその他のキーワードを使用して割り当てます。
- PatternLayout — PatternLayout キーワードを指定するのは、提供された ConversionPattern を使用して出力をフォーマット設定する場合です。例えば、ConversionPattern を
%d [%t] - %5p %m¥r¥n
この場合、出力は以下のようになります。2006-11-30 17:36:12,273 [main] - INFO TTLStreamReaper task has started. 2006-11-30 17:36:12.791 [cwrap] - Document/Checkin ConnectionWrapper.send send.before 2006-11-30 17:36:12.801 [cwrap] - WARN Document/Checkin ConnectionWrapper.send send.after
PatternLayout キーワードを使用する場合、エレメントのパターンを指定するために ConversionPattern キーワードを使用します。これらのエレメントは、収集されたデータを使用して appender に書き込まれます。提供されるサンプル・ファイルでは、以下のエレメントを使用して ConversionPattern が割り当てられます。
パターン 説明 注 %d 相対ミリ秒とフォーマット設定された日付の両方でタイム・スタンプを印刷します (この場合、GMT 時間の ISO8601 形式のデフォルトは YYYY-MM-DD HH:MM:SS:NNS です)。 相対ミリ秒のロギングはパフォーマンス (経過時間) を素早く判断する際に役立ちます。またフォーマットされた日付は外部イベントと照らし合わせる際に便利です。 [%t] 項目をロギングに記録した Java スレッド名を、大括弧で囲んで印刷します。 - ログ項目データとメッセージ・テキストの間の区切り文字としてハイフン文字を印刷します。 %5p 項目のエラー・ロギング・レベルを印刷します。 例えば、レベルを WARN に設定した場合は、「WARN」という語がログ項目に出力されます。 %m¥r¥n メッセージ・テキストの後にプラットフォーム固有の改行文字を印刷します。 - XMLLayout – XMLLayout キーワードは、テキスト・ファイル出力のほかに、同じ出力を構造化 XML 形式でファイルに書き込むことを指定する場合に使用します。
XML を読み取るポストプロセス・ツール (Chainsaw など) を使用する場合、XMLLayout を指定して XML ファイルを作成します。
XMLLayout キーワードを使用する場合、LocationInfo キーワードを使用してログ・ステートメントの起点であるステートメントのファイル名と行番号を出力 (true の場合) するか、このレイアウトでは場所の情報を生成しない (false の場合。デフォルトです) ことを指定します。
提供された log4j.properties ファイルでは、以下の appender に対して layouts と ConversionPatterns が定義されています。
#=== FileNetConsoleAppender
...
log4j.appender.FileNetConsoleAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.FileNetConsoleAppender.layout.ConversionPattern=%d %5p [%t] - %m¥r¥n
#=== FileNetErrorAppender
...
log4j.appender.FileNetErrorAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.FileNetErrorAppender.layout.ConversionPattern=%d %5p [%t] - %m¥r¥n
#=== FileNetTraceAppender
...
# The statement for TraceLayout that is commented out below is the layout that the
# TraceLoggingConfiguration framework on the server uses. To use this layout,
# the Jace.jar must be present in the classpath.
#log4j.appender.FileNetTraceAppender.layout=com.filenet.apiimpl.util.TraceLayout
# If you are using the FileNet TraceLayout, comment out the following 2 lines.
log4j.appender.FileNetTraceAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.FileNetTraceAppender.layout.ConversionPattern=%d %5p [%t] - %m¥r¥n
#=== FileNetErrorRollingAppender
...
log4j.appender.FileNetErrorRollingAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.FileNetErrorRollingAppender.layout.ConversionPattern=%d %5p [%t] - %m¥r¥n
#=== FileNetTraceRollingAppender
...
# The statement for TraceLayout that is commented out below is the layout that the
# TraceLoggingConfiguration framework on the server uses. To use this layout, the
# Jace.jar must be present in the classpath.
#log4j.appender.FileNetTraceRollingAppender.layout=com.filenet.apiimpl.util.TraceLayout
# If you are using the FileNet TraceLayout, comment out the following 2 lines.
log4j.appender.FileNetTraceRollingAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.FileNetTraceRollingAppender.layout.ConversionPattern=%d %5p [%t] - %m¥r¥n
カスタム・レイアウト・クラスまたは ConversionPattern の選択
直前の例には、FileNetTraceAppender および FileNetTraceRollingAppender の両方のステートメントがあります。 これらのステートメントは、カスタム FileNet レイアウト・クラスである com.filenet.apiimpl.util.TraceLayout を使用してトレース出力をフォーマットするよう、システムに指示するために使用できます。このレイアウト・クラスは、サーバーが TraceLoggingConfiguration オブジェクトに基づいて log4j を自動的に構成する場合に使用されます。システムに指示して TraceLoggingConfiguration の実装を回避しながら、TraceLoggingConfiguration と同様のトレース出力をフォーマットするには、layout=com.filenet.apiimpl.util.TraceLayout を指定するステートメントのコメントを外し、変換パターンを指定する 2 つのステートメントをコメント化します。また、Jace.jar ファイルが開始クラスパスに存在することを確認してください。
エラー・ロギング操作の指定
logger クラスは、ログ操作の大半の処理を担っています。ロガーのレベルは、標準、特別、利用可能なカスタム、のいずれにも設定できます。(レベルの割り当て時には、パフォーマンスの考慮事項を参照してください。) ロガーのレベルを明示的に設定しない場合、log4j の継承ルールに従ってそのレベルが継承されます。
log4j.properties のサンプル・ファイルでは、以下のように、API サブシステム (コメント化されています) のほか、デフォルトのエラー・ロガー filenet_error の構成設定が提供されています。
################################################################################
# Error Loggers:
#
# Set log level to either one of off/fatal/error/warn/info.
# Child logger's value overwrites parent logger's value.
# If a logger is not specified, it inherits its value from its parent.
# By default, error logging is set to level ERROR.
################################################################################
# Don't comment out the following line since it has appenders.
log4j.logger.filenet_error = error, FileNetConsoleAppender, FileNetErrorRollingAppender, FileNetTraceRollingAppender
#=== SubSystem: api
# Uncomment to set error logging level to WARN.
#log4j.logger.filenet_error.api = warn
エラー・ロギング・レベルの選択
エラー・ロギング・レベルは、ユーザーが生成を望むエラー・ロギングのタイプを反映します。Apache log4j では、5 つの標準レベル (WARN、DEBUG、FATAL、ERROR、INFO) がサポートされます。 また、2 つの特殊ロギング・レベル (ALL と OFF) とカスタム・レベルもサポートされます。
log4j.properties ファイル内のロギング・レベルを OFF に変更して、ロギングを無効にすることができます。 次に例を示します。
#log4j.logger.filenet_error.api = off
ロギング・アクティビティーを部分的に無効にする場合には、ロギング・レベルを OFF ではなく ERROR に変更します。
log4j.properties のサンプル・ファイルでは、以下のように、デフォルトのエラー・ロガー「filenet_error」に ERROR のロギング・レベルが割り当てられ、API サブシステムのエラー・ロガーに WARN レベルが割り当てられています (コメント化されています)。
...
log4j.logger.filenet_error = error, FileNetConsoleAppender, FileNetErrorRollingAppender, FileNetTraceRollingAppender
#=== SubSystem: api
# Uncomment to set error logging level to WARN.
#log4j.logger.filenet_error.api = warn
以下の説明は、サンプルの log4j.properties ファイルで使用された構成オプションを示しています。 (その他のレベルおよびご使用の環境に合わせたカスタム・レベルの定義の詳細については、log4j の資料を参照してください。)
レベル | 説明 |
---|---|
WARN | 潜在的なエラーのロギングを要求します。デバッグには十分な情報 (特定の RPC 名、頻度、および期間) が記録されますが、詳細は記録されません。 |
DEBUG | アプリケーションのデバッグに最も役立つ詳細な通知イベントのロギングを要求します。DEBUG では、WARN と同じ情報のほか、追加の詳細情報もログに記録されます。詳細情報の量を制限することもできます。例えば、RemoteCommand のみのロガーを指定して、DEBUG レベルでログを記録する場合、特定の RPC 名、頻度、期間、パラメーター、および戻り値を得られます。ここですべての Content Java API アクティビティーのロギングの詳細を指定すると、最大の詳細情報を得られますが、ロギングされた追加情報が問題解決に結びつかない場合もあります。多くの詳細情報を収集するほど、パフォーマンスに与える影響が深刻になることに注意してください。 |
ERROR | API 内からスローされた例外のロギングを要求します (内部でキャッチされた例外は DEBUG レベルでロギングに記録されます)。 |
FATAL | アプリケーションの中断を引き起こす可能性がある、深刻なエラー・イベントのみのロギングを要求します。 |
INFO | アプリケーションの進捗を大まかなレベルで示す通知メッセージを要求します。 |
レベルの継承の使用
Apache log4j では、階層構造によるレベルの継承がサポートされます。継承では、ロガーにレベルが明示的に指定されていない場合でも、すべてのロガーへのレベルの割り当てが保証されます。 ロガーにレベルの割り当てが行われていない場合、ロガー階層内の親のレベルが継承されます。親にレベルが割り当てられていない場合、階層内の上位で最も近い継承可能なレベルが検索されます。ルート・ロガーには必ずレベルが割り当てられるため、常にレベルが利用できることが保障されます。レベル継承の詳細については、log4j 資料を参照してください。
トレースのためのサブシステムの指定
トレース・ロギングは、論理サブシステムに編成された FileNet P8 の各種操作でサポートされています。例えば、Content Engine Java API、グローバル構成データベース、アプリケーション認証を使用する操作があります。 サポートされる各サブシステムは省略語 (API、GCD、SEC など) で表され、これは出力トレース・ログ・ファイル内で特定のサブシステムを指定する際に使用されます。
log4j.properties のサンプル・ファイルでは、以下のように、デフォルトでトレース・ロギング操作が無効になっていますが、必要になった場合に備えて API サブシステムの特定の設定が定義されています (コメント化されています)。
################################################################################
# Trace loggers:
#
# Setting log level to "off" will turn off trace logging.
# Setting log level to "debug" will turn on trace logging.
#
# Child logger's value overwrites parent logger's value.
# If a logger is not specified, it inherits its value from its parent.
# By default, trace logging is off.
#
# The general message trace logging has a hierarchy of three detail levels represented with
# hierarchical logger names:
# ...detail.moderate.summary -- Enables a summary level of tracing
# ...detail.moderate -- Enables a moderate level of tracing
# ...detail -- Enables the most detailed level of tracing
#
# Uncomment corresponding lines to turn tracing on. To enable trace logging
# for all subsystems and all flags, set the level of the filenet_tracing
# logger to debug.
#
# Here are the trace flags used for each sub system. For message tracing, enable the line
# corresponding to the desired detail level.
# log4j.logger.filenet_tracing.<SubSystem>.timer = debug
# log4j.logger.filenet_tracing.<SubSystem>.detail.moderate.summary = debug
# log4j.logger.filenet_tracing.<SubSystem>.detail.moderate = debug
# log4j.logger.filenet_tracing.<SubSystem>.detail = debug
#
# For example:
# log4j.logger.filenet_tracing.api.detail.moderate = debug
################################################################################
# Don't comment out the following line since it includes an appender.
log4j.logger.filenet_tracing = off, FileNetTraceRollingAppender
#=== SubSystem: api
#
# The "api" subsystem does not emit timer information, so you will not get any additional information
# about timing from the "timer" trace logging on the client. Round-trip timing is available as part of
# "summary" logging. "timer" information is available for selected internal operations in the CE server.
#
# Uncomment one or more lines to enable tracing.
#log4j.logger.filenet_tracing.api = debug
#log4j.logger.filenet_tracing.api.timer = debug
...
サブシステムおよびその省略語のリストは、「サポートされる FileNet P8 サブシステム」の表を参照してください。
トレースするデータの量の構成
Content Engine サーバーでは、サブシステム用に収集するトレース・データの量およびタイプを指定するために使用される、3 つのトレース・ロギング・レベル (SUMMARY、MODERATE、DETAIL) がサポートされています。 Java 形式の log4j.properties のサンプル・ファイルでは、API サブシステムに対して、各レベルのトレース・ロギングを実行するための定義が提供されています。 API サブシステムに対してトレース・ロギングが必要になった場合は、対象のトレース・ロギング・レベルに対応する行のコメントを外します。
...
# Remove the comment corresponding to the desired detail level
#log4j.logger.filenet_tracing.api.detail.moderate.summary = debug
#log4j.logger.filenet_tracing.api.detail.moderate = debug
#log4j.logger.filenet_tracing.api.detail = debug
トレース・ロギング・レベルの詳細については、「トレース・ロギングの設定」の表を参照してください。
log4j ロギングの有効化
Content Engine Java API ロギングは、2 つの方法のいずれかで有効にすることができます。Java 仮想マシン (JVM) 引数を使用して log4j.properties ファイルを指すか、JAR ファイルの内部に log4j.properties ファイルをパッケージ化するかです。 log4j.properties 構成ファイルを変更する必要がある場合、JAR ファイルを使用するアプローチでは、アプリケーションを停止し、変更したファイルを再パッケージ化し、アプリケーションを再始動する必要がありますが、JVM 引数を使用すればこれらの手順は不要です。 以下のセクションでは、各アプローチの手順について説明します。
JVM 引数を使用して Content Engine Java API ロギングを有効にするには、以下の手順を実行します。
- 提供されたサンプル・ファイル ContentEngine¥config¥samples¥log4j.properties.client を ContentEngine¥config¥log4j.properties にコピーします。
コピーしたファイルから接尾部の ".client" 拡張子を削除してください。
- ご使用のアプリケーションでのロギングの必要性に応じて、ContentEngine¥config¥log4j.properties ファイルを変更します。
- コンソール上のコマンド行から、log4j 構成ファイルの場所を指定する JVM 引数を入力します。以下に例を示します。
-Dlog4j.configuration=location
ここで、location は、変更した log4j.properties ファイルのパスです。
JAR ファイルを使用して Content Engine Java API ロギングを有効にするには、以下の手順を実行します。
- 固有の名前を持つ新しい JAR ファイルを作成します (例えば mylog4j.jar)。
注: 新規 JAR ファイルの作成は必須ではありませんが、推奨されています。固有の名前を持つ JAR ファイルが別個にあれば、その JAR ファイルに固有のロギング構成が含まれていることを覚えやすくなります。
- 提供されたサンプル・ファイル ContentEngine¥config¥samples¥log4j.properties.client を ContentEngine¥config¥log4j.properties にコピーします。
コピーしたファイルから必ず、接尾部の「.client」拡張子を削除してください。
- ご使用のアプリケーションでのロギングの必要性に応じて、ContentEngine¥config¥log4j.properties ファイルを変更します。
- ContentEngine¥config¥log4j.properties ファイルを新規 JAR ファイルの最上位レベル (サブディレクトリー内ではない) に追加します。
- 他のアプリケーション JAR ファイルと同様に、JAR ファイルをクラスパスに追加します。
アプリケーションの初期化時に、log4j は検索操作を実行して、ContentEngine¥config¥log4j.properties ファイルを見つけて自動的に読み取ります。
パフォーマンスの考慮事項
指定するロギング・レベルによって、収集される情報の量が決まります。収集される情報の量とシステムに及ぼすパフォーマンスの影響には、直接的な相関があります。
可能であれば、調査する問題の解決に必要な情報の量を判断してから、それに応じてレベルを設定してください。 例えば、WARN レベルに設定すると、詳細は含まれませんが、デバッグに必要な十分の情報は出力されます。 パフォーマンスに及ぼす影響は微細です (約 1% から 2 %)。WARN レベルは実稼働環境で安全に実行できますが、必要なデータをすべては入手できない場合があります。
しかし、DEBUG レベルを RemoteCommand に対してのみ実行すると、追加の詳細情報が提供される一方で、パフォーマンスは 10% から 20 % 低下する可能性があります。 対照的に、DEBUG レベルをすべての Content Engine API アクティビティーに対して実行すると、最大の詳細情報を得られますがシステム・パフォーマンスを犠牲にするため、実稼働環境では容認されないレベルであると言えます。 追加で収集される詳細情報の大半はデバッグに役立たないことが多く、そのような情報を収集するとシステム・パフォーマンスに深刻な影響を及ぼします。実稼働環境で DEBUG レベルを実行するのは必要な場合のみにして、その場合でも短期間にしてください。
もう 1 つの考慮事項は、選択する出力方式です。 例えば、コンソールは常に選択可能です。コンソール出力をファイルにリダイレクトしても、パフォーマンスはそれほど低下しません。ただし、コンソール・プログラムを使用して出力をコンソールに書き込むのは、ファイルに書き込むよりも大幅にパフォーマンスに影響する場合があります。(一部のコンソール・プログラムは、増大し続けるメモリー・バッファーに格納し、ログの行ごとにウィンドウを複数回にわたって再描画します。)ファイル出力は、いくつかの欠点もあります。例えば、ログ・ディレクトリーが存在し書き込み可能でなくてはなりません。経験法則としては、実稼働環境ではコンソール・ロギングを最小化し、情報が失われないように重要な情報はすべてファイルに記録する方法が適切です。
詳細については、Apache log4j の資料でパフォーマンス関連のトピックを参照してください。
共通の問題
log4j の構成および実行時に発生する可能性がある共通の問題について以下の表で説明します。 該当する項目では、問題の解決方法の提案や関連資料の参照先も記載します。
問題 | 一般的な原因 | 解決策 |
---|---|---|
FileAppender 用のログ・ファイルを作成できない。 | ログ・ファイルの作成先にするディレクトリーが存在しません。 ファイルを作成する十分な権限がありません。 |
ログ・ファイルの作成先にするディレクトリーが存在することを確認してください。ディレクトリーが存在する場合は、権限を調べ、ログ・ファイルの作成が許可されるのに十分な権限であることを確認してください。 |
ContentEngine¥config¥log4j.properties ファイルに指定した設定が出力に反映されない。 | ContentEngine¥config¥log4j.properties ファイルがランタイム・クラスパスに含まれていません。 ContentEngine¥config¥log4j.properties ファイルが、クラスパス内にある別の log4j.properties ファイルで上書きされています。 |
ContentEngine¥config¥log4j.properties ファイルをランタイム・クラスパスに追加するようにしてください。ファイルが別の構成ファイルによって上書きされた可能性がある場合、構成を明示的にロードおよび構成することを検討してください。 |
同じ場所に何度も項目がログ記録されている。 | 構成エラー。 | Apache log4j ドキュメントを参照してください。 |
Content Engine Java API に関する項目はログに記録されませんが、Content Engine クライアント・アプリケーションに関する項目はログに記録されます。 | JVM でサポートされている log4j.properties 構成ファイルは 1 つのみですが、2 つの log4j.properties (Content Engine Java API と Content Engine クライアント) があります。 | Content Engine Java API と Content Engine クライアントからのロギング・ディレクティブを 1 つの log4j.properties ファイルに結合します。詳細については、クライアント・サイド Content Engine Java API ロギングを Content Engine クライアントで使用可能にする方法を参照してください。 |
クライアント・サイド Content Engine Java API ロギングを Content Engine クライアントで使用可能にする方法
JVM では 1 つの log4j.properties ファイルのみがサポートされています。 Content Engine Java API は log4j ロギングを実装し、log4j.properties 構成ファイルを含んでいます。Content Engine クライアント・アプリケーションも log4j ロギングを実装する場合は、Content Engine Java API と Content Engine クライアントからのロギング・ディレクティブを 1 つの log4j.properties ファイルに結合する必要があります。
次の表は、3 つの Content Engine クライアント・アプリケーション、2 つの IBM® FileNet アプリケーション、および 1 つのカスタム・アプリケーションを示します。また、log4j.properties 構成ファイル、アプリケーション、およびこれらのアプリケーションに付属の Content Engine Java API の各デフォルト・ディレクトリーも示します。アプリケーションごとに、Content Engine Java API の log4j.properties から Content Engine クライアントの log4j.properties にロギング・ディレクティブをコピーします。log4j ロギングを実装するその他の Content Engine クライアント・アプリケーション (Process Engine など) について、同じアクションを実行します。
Content Engine クライアント・アプリケーション | クライアントの log4j.properties ファイルのデフォルト・ディレクトリー | Content Engine Java API log4j.properties のデフォルト・ディレクトリー |
---|---|---|
Workplace | <インストール・パス>/FileNet/Config/AE | <インストール・パス>/FileNet/AE/CE_API/config/samples |
Workplace XT | <インストール・パス>/FileNet/Config/WebClient | <インストール・パス>/FileNet/CEClient/config/samples |
カスタム・アプリケーション | <インストール・パス>/FileNet/Config/WebClient | <インストール・パス> |
Content Engine Java API の log4j.properties ファイルの以下の行を Content Engine クライアントの log4j.properties ファイルに追加します。 トレース・ロギング・レベルごとにコメントを確認し、該当する行のコメントを外すか、またはコメント化します。log4j.properties ファイルをマージした後で、この変更を反映するためクライアント・アプリケーションを再始動します。
################################################################################
# Appenders
################################################################################
#=== FileNetConsoleAppender
log4j.appender.FileNetConsoleAppender=org.apache.log4j.ConsoleAppender
log4j.appender.FileNetConsoleAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.FileNetConsoleAppender.layout.ConversionPattern=%d %5p [%t] - %m¥r¥n
#=== FileNetErrorRollingAppender
log4j.appender.FileNetErrorRollingAppender=org.apache.log4j.RollingFileAppender
log4j.appender.FileNetErrorRollingAppender.File=/p8_api_error.log
log4j.appender.FileNetErrorRollingAppender.MaxFileSize=100MB
log4j.appender.FileNetErrorRollingAppender.MaxBackupIndex=5
log4j.appender.FileNetErrorRollingAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.FileNetErrorRollingAppender.layout.ConversionPattern=%d %5p [%t] - %m¥r¥n
#=== FileNetTraceRollingAppender
log4j.appender.FileNetTraceRollingAppender=org.apache.log4j.RollingFileAppender
log4j.appender.FileNetTraceRollingAppender.File=/p8_api_trace.log
log4j.appender.FileNetTraceRollingAppender.MaxFileSize=100MB
log4j.appender.FileNetTraceRollingAppender.MaxBackupIndex=5
log4j.appender.FileNetTraceRollingAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.FileNetTraceRollingAppender.layout.ConversionPattern=%d %5p [%t] - %m¥r¥n
################################################################################
# Error Loggers:
#
# Set log level to either one of off/fatal/error/warn/info.
# Child logger's value overwrites parent logger's value.
# If a logger is not specified, it inherents its value from its parent.
# By default, error logging is set to level ERROR.
################################################################################
# Don't comment out the following line since it has appenders.
log4j.logger.filenet_error = error, FileNetConsoleAppender, FileNetErrorRollingAppender, FileNetTraceRollingAppender
#=== SubSystem: api
# Uncomment to set error logging level to WARN.
log4j.logger.filenet_error.api = warn
log4j.logger.filenet_error.error = warn
################################################################################
# Trace loggers:
#
# Setting log level to "off" will turn off trace logging.
# Setting log level to "debug" will turn on trace logging.
#
# Child logger's value overwrites parent logger's value.
# If a logger is not specified, it inherents its value from its parent.
# By default, trace logging is off.
#
# The general message trace logging has a hierarchy of three detail levels represented with
# hierarchical logger names:
# ...detail.moderate.summary -- Enables a summary level of tracing
# ...detail.moderate -- Enables a summary and moderate level of tracing
# ...detail -- Enables a summary, moderate and detailed level of tracing
#
# Uncomment corresponding lines to turn tracing on. To enable trace logging
# for all subsystems and all flags, set the level of the filenet_tracing
# logger to debug.
#
# Here are the trace flags used for each sub system. For message tracing, enable the line
# corresponding to the desired detail level.
# log4j.logger.filenet_tracing.<SubSystem>.timer = debug
# log4j.logger.filenet_tracing.<SubSystem>.detail.moderate.summary = debug
# log4j.logger.filenet_tracing.<SubSystem>.detail.moderate = debug
# log4j.logger.filenet_tracing.<SubSystem>.detail = debug
#
# For example:
# log4j.logger.filenet_tracing.api.detail.moderate = debug
################################################################################
# Don't comment out the following line since it includes an appender.
log4j.logger.filenet_tracing = off, FileNetTraceRollingAppender
#=== SubSystem: api
# Uncomment one or more lines to enable tracing.
#log4j.logger.filenet_tracing.api = debug
#log4j.logger.filenet_tracing.api.timer = debug
#log4j.logger.filenet_tracing.api.detail.moderate.summary = debug
#log4j.logger.filenet_tracing.api.detail.moderate = debug
#log4j.logger.filenet_tracing.api.detail = debug
# Uncomment the line below to enable error tracing.
log4j.logger.filenet_tracing.error = debug