マスタデータ更新ログ¶
マスタデータ更新ログには、intra-mart Accel Platform で保持するマスタ情報に対して、更新処理(登録、更新、削除)に関する情報が出力されます。また、トランザクションの開始、終了も出力し、トランザクション単位でのマスタ情報の更新結果を記録します。ログはすべてログレベルINFOで出力されます。出力対象は、インポート・エクスポート、テナント管理、ジョブスケジューラ、ポータルモジュールの更新系のAPIのみです。マスタデータ更新ログで出力するメッセージはすべてプロパティファイルから取得しています。メッセージが定義されているプロパティファイルの配置場所や、各APIが出力するメッセージの内容については、別紙「マスタデータ更新ログメッセージ一覧」を参照してください。
モジュール コアモジュール 設定場所 %CONTEXT_PATH%/WEB-INF/conf/log/im_logger_update_master_data.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 <included> <!-- - MASTER_LOG --> <appender name="MASTER_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${im.log}/platform/report/update_master_data.log</file> <append>true</append> <!-- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern> ${im.log}/platform/report/update_master_data-%d{yyyy-MM-dd}.log </fileNamePattern> </rollingPolicy> --> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <fileNamePattern>${im.log}/platform/report/update_master_data%i.log</fileNamePattern> <minIndex>1</minIndex> <maxIndex>5</maxIndex> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <maxFileSize>10MB</maxFileSize> </triggeringPolicy> <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"> <layout class="jp.co.intra_mart.common.platform.log.layout.OutputStackTracePatternLayout"> <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %logger{255} %X{tenant.id} %X{log.id} %X{request.id} %X{client.session.id} %X{masterlog.user.cd} %X{request.remote.address} %X{masterlog.transaction.id} %X{masterlog.function.type} [%X{log.message.code}] %message %X{masterlog.result}%nopex%n</pattern> <enableOutputStackTrace>true</enableOutputStackTrace> <stackTraceDir>${im.log}/platform/exception/</stackTraceDir> <stackTraceFilename>'exception_'yyyy-MM-dd_HH-mm-ss'_%logId.log'</stackTraceFilename> </layout> </encoder> </appender> <logger name="MASTER_LOG" additivity="false"> <level value="info" /> <appender-ref ref="MASTER_FILE" /> </logger> </included>
制限事項¶
別紙「マスタデータ更新ログメッセージ一覧」に定義されていないAPIでマスタデータにアクセスした場合は、ログ出力の対象外です。別紙「マスタデータ更新ログメッセージ一覧」に定義されていないAPI以外でマスタデータ更新ログの出力を行いたい場合は、 jp.co.intra_mart.system.log.masterlog.MasterLog の log() メソッドを利用してログ出力を行ってください。トランザクション開始・終了ログは、intra-mart標準のトランザクション管理を利用している場合のみ出力されます。intra-mart Accel Platform 標準のトランザクション管理機能を利用していない場合以下の問題が発生します。
- トランザクション開始・終了ログは出力されません。
- トランザクションIDが出力されません。
intra-mart Accel Platform 標準のトランザクション管理機能を利用せずにマスタデータ更新ログでトランザクションに関連する情報を出力するにはjp.co.intra_mart.system.log.masterlog.MasterLog の logBeginTransaction() メソッドまたは logFinishTransaction() メソッドを利用してトランザクションログの出力を行ってください。
内部統制対応¶
カスタマイズ¶
マスタデータ更新ログ機能では、jp.co.intra_mart.system.log.masterlog.MasterLog を使用してログの出力を行います。このクラスでは、ログ出力時に必要なパラメータをMDCにセットし、引数のメッセージキーからメッセージを取得してログ出力を行います。トランザクション管理処理では、トランザクション IDの生成やMDCへの登録・削除を行います。詳細は jp.co.intra_mart.system.log.masterlog.MasterLog のAPIリストを参照してください。
トランザクション ID¶
トランザクションとAPIからのマスタ情報更新結果を結びつけるためのユニークなIDです。実際にトランザクションが保持しているIDではなく、マスタデータ更新ログ専用のIDです。マスタ情報更新処理のトランザクション IDが同一である場合、それらの処理は同一のトランザクションで行われています。以下はトランザクション管理により、アカウント aoyagi に対しての複数の更新処理がロールバックされた場合のマスタデータ更新ログの出力結果です。(トランザクション ID、処理区分、メッセージ、更新結果を出力しています。)5i4dh906hbb2m5c TB トランザクションを開始しました 5i4dh906hbb2m5c U アカウント(aoyagi)を更新します。 成功 5i4dh906hbb2m5c U アカウント(aoyagi)を更新します。 成功 5i4dh906hbb2m5c U アカウント(aoyagi)を更新します。 失敗 5i4dh906hbb2m5c TR トランザクションをロールバックしました
ロガー名について¶
マスタデータ更新ログでは、ロガー名を以下のように定義しています。
- 「識別名」 + 「APIのクラス名」
例)AccountInfoManagerの場合MASTER_LOG.jp.co.intra_mart.foundation.admin.account.AccountInfoManager設定ファイルに個別にロガーを登録することで、APIごとにログの出力を抑制することが可能です。AccountInfoManagerの更新結果を出力しない場合、以下を設定ファイルに追記します。<logger name="MASTER_LOG.jp.co.intra_mart.foundation.admin.account.AccountInfoManager" additivity="false"> <level value="off" /> </logger>
標準出力設定¶
ログレベル(初期値) INFO 出力先(初期値) コンソールファイル - ${im.log}/platform/report/update_master_data.log
出力パターン¶
利用可能なパターン文字列¶
利用可能なMDCキー¶
マスタデータ更新ログで利用可能なMDCのキーは以下の通りです。MDCについては「MDC」を参照してください。
MDCキー 設定有無(初期値) 説明 log.id ○ ログ ID client.session.id ○ セッション ID masterlog.user.cd ○ ユーザコード masterlog.transaction.id ○ トランザクション ID masterlog.function.type ○ 処理区分C : 生成U : 更新D : 削除TB : トランザクションの開始TC : トランザクションのコミットTR : トランザクションのロールバックmasterlog.result ○ 更新結果更新API単位での処理の成功/失敗を出力します。request.id ○ リクエスト ID request.remote.address ○ リモートアドレス log.message.code ○ ログメッセージコード user.cd × ログ出力時のアカウントコンテキストのユーザコードintra-mart Accel Platform 2014 Spring(Granada) 以降、利用可能です。user.type × ログ出力時のアカウントコンテキストのユーザ種別administrator : システム管理者platform : ジョブなどのバックグラウンドuser : 一般ユーザintra-mart Accel Platform 2014 Spring(Granada) 以降、利用可能です。tenant.id ○ ログ出力時のアカウントコンテキストのテナント IDintra-mart Accel Platform 2014 Spring(Granada) 以降、利用可能です。authenticated × ログ出力時のアカウントコンテキストの認証状態true : 認証済みfalse : 未認証intra-mart Accel Platform 2014 Spring(Granada) 以降、利用可能です。コラム
アカウントコンテキストの詳細については、「アカウントコンテキストのJavaDoc」を参照してください。