intra-mart Accel Platform ログ仕様書 第12版 2019-12-01

概要

intra-mart Accel Platform では ロギングライブラリとして 「SLF4J」、その実装ライブラリとして「Logback」を採用しています。

SLF4J

SLF4J(Simple Logging Facade for Java)は様々なロギングフレームワークのインタフェースを提供します。
これにより、ログを利用するアプリケーションは任意のロギングフレームワークを配置することが可能です。
SLF4Jの詳細な情報については「SLF4JのWebサイト」を参照してください。
intra-mart Accel Platform で利用しているライブラリのバージョン情報は以下の通りです。
iAP の バージョン バージョン jarファイル名
2013 Summer(Damask) 以前 1.6.6 slf4j-api-1.6.6.jar
2013 Autumn(Eden) から 2014 Winter(Iceberg) 以前 1.7.5 slf4j-api-1.7.5.jar
2015 Spring(Juno) から 2016 Summer(Nirvana) 以前 1.7.10 slf4j-api-1.7.10.jar
2016 Winter(Olga) 以降 1.7.21 slf4j-api-1.7.21.jar

Logback

LogbackはSLF4Jの実装ライブラリです。
Logbackの詳細な情報については「LogbackのWebサイト」を参照してください。
intra-mart Accel Platform で利用しているライブラリのバージョン情報は以下の通りです。
iAP の バージョン バージョン jarファイル名
2013 Summer(Damask) 以前 1.0.7
logback-core-1.0.7.jar
logback-classic-1.0.7.jar
2013 Autumn(Eden) から 2014 Winter(Iceberg) 以前 1.0.13
logback-core-1.0.13.jar
logback-classic-1.0.13.jar
2015 Spring(Juno) から 2016 Summer(Nirvana) 以前 1.1.2
logback-core-1.1.2.jar
logback-classic-1.1.2.jar
2016 Winter(Olga) 以降 1.1.7
logback-core-1.1.7.jar
logback-classic-1.1.7.jar

ログ設定

intra-mart Accel Platform では、Webアプリケーション起動時に「Logback」に対してログの設定を反映します。
ログの設定は %CONTEXT_PATH%/WEB-INF/conf/log ディレクトリ直下の設定ファイルを利用します。具体的には、 %CONTEXT_PATH%/WEB-INF/conf/log/im_logger.xml を基点として、%CONTEXT_PATH%/WEB-INF/conf/log 直下の拡張子が .xml であるファイルが統合された内容がログの設定として扱われます。

注意

設定ファイルの退避を行う場合は、%CONTEXT_PATH%/WEB-INF/conf/log 直下に配置しないように注意してください。

im_logger.xml でのログ設定

im_logger.xml では以下のように <configuration> タグの中に設定を記述します。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <!-- 省略 -->

</configuration>
im_logger.xml で可能な設定は主に以下の通りです。
種類 必須設定 複数設定 説明
appender
ログをどの場所に、どのように、どのような形式で出力するのかを設定します。
詳細については「Appender」を参照してください。
root × ×
ロガー名による設定が何も行われいない場合に利用されるロガーの設定です。
詳細については「ルートロガー」を参照してください。
logger ×
特定のロガーに対してのどのように出力するかを設定します。
詳細については「Logger」を参照してください。

コラム

その他の利用可能な設定については「LogbackのWebサイト」を参照してください。

注意

im_logger.xml の移動や削除は行わないでください。intra-mart Accel Platform でのログ機能が正常に動作しなくなります。

im_logger.xml 以外でのログ設定

im_logger.xml 以外の設定ファイルは、以下のようなタグの中に設定を記述します。
<?xml version="1.0" encoding="UTF-8"?>
<included>

    <!-- 省略 -->

</included>
im_logger.xml 以外の設定ファイルで可能な設定は主に以下の通りです。
種類 必須設定 複数設定 説明
appender ×
ログをどの場所に、どのように、どのような形式で出力するのかを設定します。
詳細については「Appender」を参照してください。
logger ×
特定のロガーに対してのどのように出力するか設定します。
詳細については「Logger」を参照してください。

コラム

その他の利用可能な設定については「LogbackのWebサイト」を参照してください。

ログ設定ファイルの編集

intra-mart Accel Platform で提供されているログのログ設定ファイルは、IM-Juggling で編集可能です。同梱されているモジュール名、および、出力場所については「システムログ」、および、「特定用途ログ」の各ログの項目に記載されています。
本書ではログ設定ファイルのパスは %CONTEXT_PATH%/WEB-INF/conf/log と記載していますが、IM-Juggling でファイルを編集する場合は IM-Juggling のプロジェクト直下の conf/log に対して行ってください。

MDC

MDC(Mapped Diagnostic Context)とは、ログに出力する情報を一時的に保持するマップです。
ログ設定ファイルのLayoutの設定を行うことで特定のキーに保存された情報を出力することが可能です。
intra-mart Accel Platform が提供する各ログで利用可能なMDCについては「システムログ」、および、「特定用途ログ」の各ログの項を参照してください。

プロパティ

ログ設定ファイルでは ${property_name} と指定することにより様々な設定値を利用可能です。利用可能な設定値は以下のとおりです。
  1. ログ設定ファイルの <property> タグで設定したプロパティ
  2. Javaのシステムプロパティ(java.lang.System#getProperty(String) で取得できる値)
  3. OSの環境変数

コラム

プロパティ名が重複した場合、上記の順番が低い方が優先されます。

ログ設定ファイルでプロパティの設定を行うには以下のように記述します。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <property name="name" value="value" />

</configuration>
プロパティが存在しない場合は、プロパティ名に _IS_UNDEFINED という文字列が付与された値が利用されます。
例)
${name} を指定し、name のプロパティが存在しない場合。
name_IS_UNDEFINED
${property_name:-property_default} という形式で指定することでプロパティが存在しない場合に代替する文字列を設定可能です。
例)
${name:-unknown} を指定し、name のプロパティが存在しない場合。
unknown

提供されているプロパティ

intra-mart Accel Platform で提供しているプロパティは以下の通りです。
プロパティ名 説明
im.log
intra-mart Accel Platform でログを出力する基点とするディレクトリのパスが取得できます。
この値はサーバコンテキスト設定のログファイルディレクトリで指定されている値が取得できます。
詳細は設定ファイルリファレンスの「サーバコンテキスト設定」を参照してください。

業務処理からのログ出力

intra-mart Accel Platform の業務処理中にログを出力する方法については以下のドキュメントを参照してください。