18
All Right Reserved, Copyright © FUJITSU LIMITED 2015-2017 i Framework におけるログ出力 Version 1.1 2017 07 18 富士通株式会社

Framework におけるログ出力 - Fujitsu...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 3 第2章 ログ出力の仕組み 2.1 概要 Framework が提供するログ部品は、基本的にlog4j

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Framework におけるログ出力 - Fujitsu...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 3 第2章 ログ出力の仕組み 2.1 概要 Framework が提供するログ部品は、基本的にlog4j

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2017

i

Framework におけるログ出力

Version 1.1

2017 年 07 月 18 日 富士通株式会社

Page 2: Framework におけるログ出力 - Fujitsu...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 3 第2章 ログ出力の仕組み 2.1 概要 Framework が提供するログ部品は、基本的にlog4j

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2017

ii

改訂履歴

改訂 No. 日付 Version 章 No. 項 No. 改訂内容

1 2014/08/14 0.1 - - 新規作成

2 2015/01/15 0.2 3 3.2.1 No.15 コンテントタイプ(レスポンス)に関する記述を追加

3 2015/03/25 0.3 2 2 キーワード置換埋め込みに関して追記

4 2016/02/03 1.0 - - ログ強化対応

5 2017/0718 1.1 Web サーバー関連の記載削除

Page 3: Framework におけるログ出力 - Fujitsu...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 3 第2章 ログ出力の仕組み 2.1 概要 Framework が提供するログ部品は、基本的にlog4j

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2017

iii

目次

第 1章 はじめに ............................................................................................................................................................ 1

1.1 ログ出力の箇所について .......................................................................................................................................................................... 1 1.2 ログ出力の全体概要 ................................................................................................................................................................................... 2

第 2章 ログ出力の仕組み ......................................................................................................................................... 3

2.1 概要 ..................................................................................................................................................................................................................... 3 2.2 FRAMEWORK拡張のキーワード置換埋め込み ................................................................................................................................... 4

第 3章 ログの種類と出力項目 ................................................................................................................................. 5

3.1 AP サーバ......................................................................................................................................................................................................... 5 3.1.1 出力箇所 ....................................................................................................................................................................................................... 5

3.1.1.1 通信制御サーバ ............................................................................................................................................................................... 5 3.1.1.2 シンプルイベントフロー(BPM) ..................................................................................................................................................... 8 3.1.1.3 モデル .................................................................................................................................................................................................. 10 3.1.1.4 DAO ....................................................................................................................................................................................................... 11 3.1.1.5 マスタ検索部品 ............................................................................................................................................................................... 11 3.1.1.6 キャッシュ部品 ................................................................................................................................................................................. 11

3.1.2 デバックログレベル変更 ...................................................................................................................................................................... 12

第 4章 トレースログ(XLOG) .................................................................................................................................. 13

4.1 フォーワード制御(API)サーバのトレースログ ............................................................................................................................... 13 4.1.1 出力ポイント .............................................................................................................................................................................................. 13 4.1.2 出力可能項目 ........................................................................................................................................................................................... 13

4.2 通信制御(REST)サーバのトレースログ .......................................................................................................................................... 14 4.2.1 出力ポイント .............................................................................................................................................................................................. 14 4.2.2 出力可能項目 ........................................................................................................................................................................................... 14

4.3 BPM のトレースログ ................................................................................................................................................................................... 15 4.3.1 出力ポイント .............................................................................................................................................................................................. 15 4.3.2 出力可能項目 ........................................................................................................................................................................................... 15

Page 4: Framework におけるログ出力 - Fujitsu...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 3 第2章 ログ出力の仕組み 2.1 概要 Framework が提供するログ部品は、基本的にlog4j

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016

1

第1章 はじめに

ログの種類、出力箇所と出力内容、埋め込み可能な情報について説明します。

1.1 ログ出力の箇所について

以下に主なログ出力箇所を示します。

クライアント

Web サーバ

3.1 AP サーバ

3.1.1.1 通信制御サーバ

DBServer

DB 関連ログ

HTTP 通信

HTTP 通信

3.1.1.2 シンプルイベントフロー(BPM

3.1.1.3 モデル

3.1.1.4 DAO

3.1.1.5 マスタ検索部品

3.1.1.6 キャッシュ部品

4.1 フォーワード制御(API)サーバのトレースログ

4.2 通信制御(REST)サーバのトレースログ

凡例

: 埋め込み文字列機能によるカスタム可能な箇所

システムログ(syslog)

※ FW のログ出力部品は Apache Log4j のログ APIを利用することで、

様々なロギング機能を実装しています。

HTTP 通信

Page 5: Framework におけるログ出力 - Fujitsu...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 3 第2章 ログ出力の仕組み 2.1 概要 Framework が提供するログ部品は、基本的にlog4j

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016

2

1.2 ログ出力の全体概要

以下に AP サーバで出力されるログ出力の全体概要を示します。

Ap

ach

e H

TT

P S

erv

er

Ap

ach

e T

om

cat

(アプリケーションサーバ)

通信制御サーバ:R

ES

T

サーバ

シンプルイベントフロー(B

PM

syslog

サービス

I/F

サービス

I/F

サービス

I/F

モデル処理

モデル処理 モデル処理 D

AO

シンプル

イベント

モデル

管理

トレースログ

ルール

ログ

モデル管理

ログ

デバックログ アクセスロ

グ コンテナログ

モデル TBL

BPダンプ

ログ

マスタ

検索 マスタ TBL

通信制御サーバ:A

PI

サーバ

OS ミドル FW 業務 【凡例】 ジャーナル

ログ

キャッシ

ュ部品

Page 6: Framework におけるログ出力 - Fujitsu...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 3 第2章 ログ出力の仕組み 2.1 概要 Framework が提供するログ部品は、基本的にlog4j

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016

3

第2章 ログ出力の仕組み

2.1 概要

Framework が提供するログ部品は、基本的に log4j を使用しており、以下の機能を備えています。

No 機能 概要

1 log4j のログ出力先選択機能 ファイル出力、コンソール出力、Syslog 出力、ソケット出力など、要件に合わせて変更可能です。

Logger 定義の名称は、ログの種類ごとに FW が意識しているので、任意につけることはできません。

2 Framework が拡張したログレイアウト機能 log4j の機能として、ログレイアウトに%d や %p や %l といった文字を記述し、時刻や重要度、ログ出力元を自動的に埋め込むことができます。

FW はこの機能を拡張し、FW が管理している情報を埋め込んで出力することができます。

3 Framework によるログファイル名のカスタマイズ機能 log4j の機能では連番を用いたファイルのローテーション機能しかないが、FW では FW が管理している埋め込み情報をファイル名に適用することができます。

4 Framework によるレイアウトの動的切り替え機能 FW では同じファイルに複数のレイアウトを定義し、動的に切り替えて使用できるように拡張しています。(XLOG(トレースログ)に使用)

Logger 定義

ログの種類

レベル判定

ConsoleAppender

標準出力への出力

layout

出力データの定義

FW) FileAppender

ファイル名

カスタマイズ

FW) layout

出力データの定義

Logger 定義

ログの種類

レベル判定

FW) FileAppender

ファイル名

カスタマイズ

FW) layout

出力データの定義

log4j.xml

コンソール

ログ

ファイル

ログ

ファイル

④FW のレイアウト動的

切り替え機能

レイアウト定義

レイアウト定義

③ FW のログファイルカ

スタマイズ機能

② FW の拡張したログ

レイアウト機能

同一のファイルに、複数の異

なるキーワード置換埋め込み

のレイアウトで書き込む

キーワード置換埋め込みした

ファイル名、ログ内容で書き込

みを行う

Logger 定義

ログの種類

レベル判定

SyslogAppender

Syslogへの出力 FW) layout

出力データの定義

普通の log4j を使用した

ログ出力

Syslogd キーワード置換埋め込みした

ログ内容で Syslogへ通信をす

appender 定義 ⇒ 出力先と出力形式 logger 定義

① log4j の出力先

選択機能

log4j 元々の定義

FW が拡張した機能

による定義

凡例

Page 7: Framework におけるログ出力 - Fujitsu...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 3 第2章 ログ出力の仕組み 2.1 概要 Framework が提供するログ部品は、基本的にlog4j

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016

4

2.2 Framework 拡張のキーワード置換埋め込み

Framework 拡張のログレイアウト機能やログファイル名カスタマイズ機能では、log4j 標準の埋め込み機能に加え、以下の情報を埋め込むことができます。

No 項目 log4j.xml 指定方法 概要

1 Framework 管理項目 %@{埋め込み文字列} Framework が管理している埋め込み情報を出力します。

使用できる埋め込み文字列はログにより異なります。各ログで出力可能な項目や埋め込み文字列は後述します。

2 システムプロパティ %s{システムプロパティ名} JVM が管理しているシステムプロパティ(JVM オプション)を出力します。

3 環境変数 %e{環境変数名} JVM が管理している環境変数を出力します。

Page 8: Framework におけるログ出力 - Fujitsu...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 3 第2章 ログ出力の仕組み 2.1 概要 Framework が提供するログ部品は、基本的にlog4j

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016

5

第3章 ログの種類と出力項目

ログの種類とファイル名例、出力項目例を示します。

トレースログについては出力箇所により出力レイアウトを細かく制御できる。トレースログの出力可能項目は次章に詳細を示します。

3.1 AP サーバ

AP サーバ上では、通信制御サーバと BPM が同一プロセスで動作します。

3.1.1 出力箇所 出力箇所別の詳細を以下項目で示します。

3.1.1.1 通信制御サーバ

通信制御サーバが出力するログを以下に示します。

デバッグログは BPM 側とは独立して出力されます。

No ログ名 Logger 定義名 概要 出力ファイル例 デフォルト出力先 出力項目例

1 デ バ ッ グ ロ グ

(REST)

REST.DEBUG REST サーバのデバッグ用のログ。

1 ファイル固定。

FW が出力します。

{年月日}/REST_Request.log /var/log/applog/ap/debug 日時、重要度、スレッド名、電文 ID、出力元、ログ本文

2 コンテナログ

(REST コンソール

ログ)

REST.DEFAULT ログ初期化前に発生したエラーなど、デバッグログに出力で

きない場合に出力されるログ。

アプリケーションサーバの標準出

力の出力先によります。

- 日時、重要度、出力元、ログ本文

3 デバックログ(API) API.DEBUG フォーワードサーバのデバッグ用のログ。

1 ファイル固定。

FW が出力します。

{年月日}/API_Server.log /var/log/applog/ap/debug 日時、重要度、スレッド名、電文 ID、出力元、ログ本文

4 コンテナログ

(API コンソールロ

グ)

API.DEFAULT ログ初期化前に発生したエラーなど、デバッグログに出力で

きない場合に出力されるログ。

アプリケーションサーバの標準出

力の出力先によります。

- 日時、重要度、出力元、ログ本文

5 ト レ ー ス ロ グ

(XLOG)

XLOG リクエストの受信から応答までの通信制御サーバの実行結

果を出力します。

XLOG_{サーバ ID}_{年月日}.log /var/log/applog/ap/trace 日時、ホスト名、電文 ID、セッション ID、クライアント IP、開始時刻、終了時

刻、等々

※出力箇所に応じて出力できる情報が異なります。

6 ジャーナルログ JOURNAL.LOG 通信制御クライアント等から受信したリクエストデータをシリア

ライズし、ファイルへ出力します。

{日付}_{トランザクションタイプ}_{サ

ーバ ID}_{プロセス ID}.log

(トランザクションタイプは"RECV"

または"SEND")

/var/log/applog/ap/journal 日時、トランザクションタイプ、電文 ID、セッション ID、クライアント IP、開始

時刻、コンテントタイプ、等々

7 リカバリログ DB出力なので log4j

定義なし

フォワードリカバリを行うためのリカバリ用のログ。

通信制御サーバから電文をバイト配列化して DB へ書き込み

ます。

DB に出力します。 - テーブルレイアウトは固定。

8 エラー通知ログ

(Syslog)

SYSTEM.ALERT エラーが発生したことを syslogに出力します。 alert_{年月日}.log /var/log/applog/ap 応答エラーコード、業務エラー情報、システムエラーコード、ユースケース

ID、オペレーション ID、オペレーション名、サーバ ID、クライアント IP、電文

ID、セッション ID

Page 9: Framework におけるログ出力 - Fujitsu...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 3 第2章 ログ出力の仕組み 2.1 概要 Framework が提供するログ部品は、基本的にlog4j

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016

6

出力例は下記の通りです。

・デバックログ(REST)

・デバックログ(API)

・トレースログ(XLOG)

・ジャーナルログ

・アラートログ

2016/02/10,15:19:52.476,[INFO ],[http-nio-8080-exec-1],[X00001__152C9D6051A01],com.fujitsu.xframework.x71.server.RESTServlet.innerGet(RESTServlet.java:298),## BEGIN ##

2016/02/10,15:19:52.481,[INFO ],[http-nio-8080-exec-1],[X00001__152C9D6051A01],com.fujitsu.xframework.x71.server.conv.model.ModelRequestConverter.convert(ModelRequestConverter.java:174),## BEGIN ##

2016/02/10,15:19:52.483,[INFO ],[http-nio-8080-exec-1],[X00001__152C9D6051A01],com.fujitsu.xframework.x71.server.conv.model.ModelRequestConverter.convert(ModelRequestConverter.java:182),## END ##

2016/02/10,15:19:52.484,[INFO ],[http-nio-8080-exec-1],[X00001__152C9D6051A01],com.fujitsu.xframework.x71.server.executor.bpm.BPMExecutor.run(BPMExecutor.java:498),## BEGIN ##

2016/02/10,15:19:52.484,[INFO ],[http-nio-8080-exec-1],[X00001__152C9D6051A01],com.fujitsu.xframework.x71.server.executor.AbstractExecutor.runWithPointcut(AbstractExecutor.java:239),## BEGIN ##

2016/02/10,15:19:52.701,[INFO ],[http-nio-8080-exec-1],[X00001__152C9D6051A01],com.fujitsu.xframework.x71.server.executor.AbstractExecutor.runWithPointcut(AbstractExecutor.java:267),## END ##

2016/02/10,15:19:52.701,[INFO ],[http-nio-8080-exec-1],[X00001__152C9D6051A01],com.fujitsu.xframework.x71.server.executor.bpm.BPMExecutor.run(BPMExecutor.java:563),## END ##

2016/02/10,15:19:52.702,[INFO ],[http-nio-8080-exec-1],[X00001__152C9D6051A01],com.fujitsu.xframework.x71.server.conv.model.ModelResponseConverter.convert(ModelResponseConverter.java:279),## BEGIN ##

2016/02/10,15:19:52.702,[INFO ],[http-nio-8080-exec-1],[X00001__152C9D6051A01],com.fujitsu.xframework.x71.server.conv.model.ModelResponseConverter.convertJSON(ModelResponseConverter.java:165),## END ##

2016/02/10,15:19:52.708,[INFO ],[http-nio-8080-exec-1],[X00001__152C9D6051A01],com.fujitsu.xframework.x71.server.RESTServlet.innerGet(RESTServlet.java:369),## END ##

2016/02/10,15:19:52.475,[INFO ],[http-nio-8080-exec-1],[X00001__152C9D6051A01],com.fujitsu.fw.rest.server.uri.mapping.APIServlet.processRequest(APIServlet.java:231),## BEGIN ##

2016/02/10,15:19:52.709,[INFO ],[http-nio-8080-exec-1],[X00001__152C9D6051A01],com.fujitsu.fw.rest.server.uri.mapping.APIServlet.processRequest(APIServlet.java:323),## END ##

2016/02/10,15:19:52.475, AA, D=X00001__152C9D6051A01, T=%@{FromIP}, start=20160210151952474, sendTime=19700101085959999, KEY=[, ], from=[GET, /runModelTableTest/]

2016/02/10,15:19:52.478, RA, D=X00001__152C9D6051A01, T=%@{FromIP}, start=20160210151952476, sendTime=19700101085959999, KEY=[, ]

2016/02/10,15:19:52.485, BA, D=X00001__152C9D6051A01, T=10.77.11.154, U=UCMODEL_MODEL, O=OPE_MODEL, P=UCMODEL_MODEL, EL=000, SE=, start=20160210151952484, KEY=[, ]

2016/02/10,15:19:52.669, BM, D=X00001__152C9D6051A01, T=10.77.11.154, U=UCMODEL_MODEL, O=OPE_MODEL, P=UCMODEL_MODEL_3_5, EL=000, SE=, BE=, RE=, SA=, MBC=com.fujitsu.variation.it.RootModelBase#runModelTableTest, time=171, KEY=[, ]

2016/02/10,15:19:52.677,[INFO ],com.fujitsu.xframework.x21.bpm.log.xlog.XLogWriter.writeXLog(XLogWriter.java:44),

2016/02/10,15:19:52.700, BZ, D=X00001__152C9D6051A01, T=10.77.11.154, U=UCMODEL_MODEL, O=OPE_MODEL, P=UCMODEL_MODEL, EL=000, SE=, SS=, VC=, BE=, RE=, SA=, start=20160210151952484, end=20160210151952700, time=216, KEY=[, ]

2016/02/10,15:19:52.701, RY, D=X00001__152C9D6051A01, SID=, CH=, T=, T=10.77.11.154, U=UCMODEL_MODEL, O=OPE_MODEL, EL=000, SE=, BE=, RE=, time=217, KEY=[, ]

2016/02/10,15:19:52.708, RZ, D=X00001__152C9D6051A01, SID=, CH=, FT=, T=10.77.11.154, HS=200, SE=, start=20160210151952476, end=20160210151952707, time=231, sendTime=19700101085959999, KEY=[, ]

2016/02/10,15:19:52.708, AY, D=X00001__152C9D6051A01, SID=, CH=, T=, T=%@{FromIP}, U=USCASE_ID, O=OPERATION_ID, EL=%@{ErrorLevel}, SE=, BE=%@{BusinessErrorInformation}, RE=%@{ResponseErrorCode}, time=-1, KEY=[, ], to=[GET,

/RESTServer/UCMODEL_MODEL/OPE_MODEL]

2016/02/10,15:19:52.709, AZ, D=X00001__152C9D6051A01, SID=, CH=, FT=, T=%@{FromIP}, HS=200, SE=, start=20160210151952474, end=20160210151952708, time=234, sendTime=19700101085959999, KEY=[, ]

2016/02/10,15:19:52.713, BA, D=X00001__152C9D6051A01, T=10.77.11.154, U=UCMODEL_MODEL, O=OPE_MODEL, P=UCMODEL_MODELAsync, EL=000, SE=, start=20160210151952709, KEY=[, ]

2016/02/10,15:19:52.847, BM, D=X00001__152C9D6051A01, T=10.77.11.154, U=UCMODEL_MODEL, O=OPE_MODEL, P=UCMODEL_MODELAsync_3_8, EL=000, SE=, BE=, RE=, SA=, MBC=com.fujitsu.variation.it.RootModelBase#runModelTableTest, time=128, KEY=[, ]

2016/02/10,15:19:52.852,[INFO ],com.fujitsu.xframework.x21.bpm.log.xlog.XLogWriter.writeXLog(XLogWriter.java:44),

2016/02/10,15:19:52.855, BZ, D=X00001__152C9D6051A01, T=10.77.11.154, U=UCMODEL_MODEL, O=OPE_MODEL, P=UCMODEL_MODELAsync, EL=000, SE=, SS=, VC=, BE=, RE=, SA=, start=20160210151952709, end=20160210151952855, time=146, KEY=[, ]

2016/02/10 15:19:52.478, RECV, REST_SERVER_HANDLE_X00001__152C9D6051A01-10.77.11.154--1, RESTHttpHeader [telegramID=X00001__152C9D6051A01 ,sessionID= ,fromClientIP=, OperationInfo

[usecaseID=UCMODEL_MODEL ,operationID=OPE_MODEL], journalLogName=2016021015_RECV_-_17772.log

2016/02/09,14:04:25.219, oss-test, -, X00001__152C46A8F7801, UID=UC_DB_CONNECT_NON, OPID=OPE_DB_CONNECT_NON, オペレーション, , CODE_RUNERRORDB, DB 操作関連の処理で異常が発生しました。, , Key=[, ]

Page 10: Framework におけるログ出力 - Fujitsu...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 3 第2章 ログ出力の仕組み 2.1 概要 Framework が提供するログ部品は、基本的にlog4j

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016

7

出力可能な項目を以下に示します。

ジャーナルログでの埋め込み情報が多いのはジャーナルログ本文を出力するために埋め込み機能を使用しているためです。(ジャーナルログのフォーマットを固定化させないため)

インデックスファイルとジャーナルログ本体の 2 ファイルを出力できるように対応したため、ジャーナルログにて日付情報が埋め込みできるようになっています。

No 出力項目 埋め込み文字列 概要 デバッグログ ジャーナルログ

要求時

ジャーナルログ

応答時

エラー通知

1 電文 ID TelegramID 通信制御クライアントで採番された、電文を一意に識別する ID。 ○ ○ ○ ○

2 ジャーナルファイル名用日付

情報

FileNamePrefixDate ジャーナルファイル名用の日付。 ○ ○

3 トランザクション種別 TranType 送信・受信の種別。 ○ ○

4 サーバ ID ServerID サーバを特定する ID。 ○ ○ ○

5 プロセス ID PID OS の採番したプロセスを特定する ID。 ○ ○

6 ジャーナル用日付 JournalDate ジャーナル用の日付。 ○ ○

7 ログ用ハンドル ID HandleID プレフィックス、電文 ID、通信元クライアント IP、送信時間を結合した文字列。 ○ ○

8 Web セッション ID SessionID WebFW 側のセッションを特定する ID。 ○ ○ ○

9 クライアントの IP アドレス FromClientIP クライアントの IP アドレス(X-Forwarded-For の値)。 ○ ○ ○

10 ユースケース ID UsecaseID 呼び出し対象のユースケースを示す ID。 ○ ○ ○

11 オペレーション ID OperationID 呼び出し対象のオペレーションを示す ID。 ○ ○ ○

12 通信元の IP アドレス RemoteAddr クライアントのリモートアドレス(プロキシになることが多い)。 ○ ○

13 リクエスト送信時刻 SendTime リクエストが送信された時刻。 ○ ○

14 コンテントタイプ(リクエスト) ContentType リクエスト(リクエスト)のコンテントタイプヘッダ値。 ○ ○

15 コンテントタイプ(レスポンス) RES_ContentType リクエスト(レスポンス)のコンテントタイプヘッダ値。 ○

16 リランフラグ RESTReRun リカバリ実行時かどうかのフラグ。 ○ ○

17 呼び出しチャネル Channel 呼び出し先に応じたチャネル情報。 ○ ○

18 認証情報 Authorization リクエストの Authorization ヘッダの値。 ○ ○

19 URI URI 通信制御サーバを呼び出した URI。 ○ ○

20 HTTP メソッド Method 通信制御サーバを呼び出した HTTP メソッド(GET or POST)。 ○ ○

21 バージョン Version サービスインタフェースのバージョン。 ○ ○

22 拡張子 Extension URL の拡張子部分。 ○ ○

23 リカバリログ RecoveryLog リカバリ実行有無(リカバリあり:true, リカバリなし:false)。 ○ ○

24 処理前情報 PreData 通信制御サーバでの処理前の JSON データ。 ○

25 ファイル情報 FileDataList アップロードしたファイルの情報。 ○ ○

26 完了フラグ Complete 処理が正常に完了したかを示すフラグ。 ○

27 HTTP ステータスコード HttpStatusCode 応答時の HTTPステータスコード。 ○

28 応答拡張ヘッダ ExResHeader 応答時に付与する独自のヘッダ。 ○

29 応答データ Data 応答時に返却するデータ。 ○

30 応答エラーコード ResponseErrorCode 画面等に出力するためのメッセージと紐付くエラーコード。 ○

31 業務エラー情報 BusinessErrorInformation 業務開発者向けの原因特定用のエラーコード。 ○

32 システムエラーコード SystemErrorCode システムエラーコード。FW 側から設定するエラーコード。 ○

33 オペレーション名 OperationName オペレーション名(和名)。 ○

34 業務情報メイン BusinessInformationMain 任意の設定が可能な業務情報 ○

35 業務情報サブ BusinessInformationSub 任意の設定が可能な業務情報 ○

Page 11: Framework におけるログ出力 - Fujitsu...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 3 第2章 ログ出力の仕組み 2.1 概要 Framework が提供するログ部品は、基本的にlog4j

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016

8

3.1.1.2 シンプルイベントフロー(BPM)

シンプルイベントフローFW(BPM)が出力するログを以下に示します。

No ログ名 Logger 定義名 概要 出力ファイル例 デフォルト出力先 出力項目例

1 デバッグログ DEBUG_LOG デバッグ用のログや例外情報などを、電文単位などで出力し

ます。

モデルや各種カスタム部品からログ部品を取得して書き出す

と、デバッグログに書き出されます。

{年月日}/{電文 ID}_{ユースケー

ス ID}_{オペレーション ID}.log

/var/log/applog/ap/debug 日時、重要度、スレッド名、階層構造コード、出力元、ログ本文

2 コンテナログ(コン

ソールログ)

BPM_DEFAULT_LOG ログ出力部品初期化前に発生したエラーなど、デバッグログ

に出力できないときに使用します。

アプリケーションサーバの標準

出力の出力先による。

- 日時、重要度、出力元、ログ本文

3 ト レ ー ス ロ グ

(XLOG)

XLOG BPM の処理開始から終了までの処理経過を出力します。 XLOG_{サーバ ID}_{年月日}.log /var/log/applog/ap/trace 日時、ホスト名、電文 ID、セッション ID、クライアント IP、ユースケース ID、

オペレーション ID、階層構造コード、等々

※出力箇所に応じて出力できる情報が異なります。

4 BP ダンプログ BPM_BP_DUMP BPM 処理途中、エラーが発生した時点のデータ状態をダンプ

出力します。

- - ※現在は出力されない設定で固定されている。同一の内容がデバックロ

グに出力される。

※レイアウトの自由度なし

5 リカバリログ DB 出力なので log4j

定義なし

リトライ、リカバリに使用されるログ。

BPMの処理結果に応じて、通信制御サーバが DBに書き出し

たリカバリログのステータスコードを更新します。

DB に出力する。 - テーブルレイアウトは固定。

6 実行ログ DB 出力なので log4j

定義なし

リトライ、リカバリに使用されるログ。

DB コミット時のデータ状態を DB に出力する。リカバリ実行時

に参照して再実行を回避します。

DB に出力する。 - テーブルレイアウトは固定。

7 エラー通知ログ SYSTEM.ALERT エラーが発生したことを syslogに出力します。 alert_{年月日}.log /var/log/applog/ap 応答エラーコード、業務エラー情報、システムエラーコード、ユースケー

ス ID、オペレーション ID、オペレーション名、サーバ ID、クライアント IP、

電文 ID、セッション ID

Page 12: Framework におけるログ出力 - Fujitsu...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 3 第2章 ログ出力の仕組み 2.1 概要 Framework が提供するログ部品は、基本的にlog4j

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016

9

出力例は下記の通りです。

・デバックログ

・トレースログ、エラー通知ログ

※出力内容が同等である「3.1.1.1 通信制御サーバ」の出力例を参照してください。

出力項目について以下に示します。

No 出力項目 埋め込み文字列 概要 デバッグログ BP ダンプログ エラー通知

1 電文 ID TelegramID 通信制御クライアントで採番された、電文を一意に識別する ID。 ○ ○ ○

2 ユースケース ID UsecaseID 呼び出し対象のユースケースを示す ID。 ○ ○ ○

3 オペレーション ID OperationID 呼び出し対象のオペレーションを示す ID。 ○ ○ ○

4 階層構造コード OperationPositionCode BPM のフロー上の位置を示すコード。 ○ ○

5 処理対象クラス名 ClassName 処理対象のクラス(モデルベースクラス)名。 ○

6 処理対象メソッド名 MethodName 処理対象クラス内のメソッド名。 ○

7 サーバ ID ServerID サーバを特定する ID。 ○

8 応答エラーコード ResponseErrorCode 画面等に出力するためのメッセージと紐付くエラーコード。 ○

9 業務エラー情報 BusinessErrorInformation 業務開発者向けの原因特定用のエラーコード。 ○

10 システムエラーコード SystemErrorCode システムエラーコード。FW 側から設定するエラーコード。 ○

11 オペレーション名 OperationName オペレーションの和名。 ○

12 通信元 IP FromIP クライアントの IP アドレス。 ○

13 Web セッション ID SessionID WebFW 側のセッションを特定する ID。 ○

14 業務情報メイン BusinessInformationMain 任意の設定が可能な業務情報。 ○

15 業務情報サブ BusinessInformationSub 任意の設定が可能な業務情報。 ○

2016/02/10,15:19:52.486,[INFO ],[http-nio-8080-exec-1],[UCMODEL_MODEL],com.fujitsu.xframework.x21.bpm.AbstractService.runService(AbstractService.java:518),## BEGIN ##

2016/02/10,15:19:52.487,[INFO ],[http-nio-8080-exec-1],[UCMODEL_MODEL],com.fujitsu.xframework.x21.bpm.AbstractService.runServiceBroker(AbstractService.java:462),## BEGIN ##

2016/02/10,15:19:52.487,[INFO ],[http-nio-8080-exec-1],[UCMODEL_MODEL],com.fujitsu.fw.ucmodel_model.UCMODEL_MODEL.run(UCMODEL_MODEL.java:88),## BEGIN ##UCMODEL_MODEL 処理開始

2016/02/10,15:19:52.488,[INFO ],[http-nio-8080-exec-1],[UCMODEL_MODEL_3],com.fujitsu.xframework.x21.bpm.BPMOperator.run(BPMOperator.java:404),## BEGIN ##

2016/02/10,15:19:52.492,[INFO ],[http-nio-8080-exec-1],[UCMODEL_MODEL_3],com.fujitsu.fw.ucmodel_model.OPE_MODEL.run(OPE_MODEL.java:102),## BEGIN ##

2016/02/10,15:19:52.498,[INFO ],[http-nio-8080-exec-1],[UCMODEL_MODEL_3_5],com.fujitsu.xframework.x21.bpm.BPMOperator.run(BPMOperator.java:404),## BEGIN ##

Page 13: Framework におけるログ出力 - Fujitsu...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 3 第2章 ログ出力の仕組み 2.1 概要 Framework が提供するログ部品は、基本的にlog4j

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016

10

3.1.1.3 モデル

モデル FW が出力するログを以下に示します。

(埋め込み文字列の使用は不可です。)

No ログ名 Loggerg 定義名 概要 出力ファイル例 デフォルト出力先 出力項目例

1 システムログ SYSTEM_LOG モデル FW が出力するログ。 {年月日}/system.log /var/log/applog/ap/debug 日時、重要度、出力元、ログ本文

2 ルールログ XML_PTN_LOG XMLパターン部品が出力するログ。

通常は出力されません。

{年月日}/xml_ptn.log /var/log/applog/ap/debug 日時、重要度、出力元、ログ本文

出力例は下記の通りです。

・システムログ

・ルールログ

2016/02/10,15:18:44.627,[OFF ],com.fujitsu.xframework.x31.X31SSystem.outputManifestAttributeLog(X31SSystem.java:491),JarName=/opt/apache-tomcat-8.0.21/webapps/SEF_SERVER/WEB-INF/lib/x31.jar, JarSize=412,372, Version=1.0.0,

Build=2016/02/01 09:21:27.406

2016/02/10,15:18:44.632,[OFF ],com.fujitsu.xframework.x31.X31SServiceManager.registration(X31SServiceManager.java:169),サービスクラス com.fujitsu.xframework.x31.X31SModelInitServer の登録処理を開始します。

2016/02/10,15:18:44.719,[OFF ],com.fujitsu.xframework.x31.X31SModelGroupFactory.init(X31SModelGroupFactory.java:202),モデル IF_バリエーション試験_内部モデル_single のモデル識別コード=952f3167

2016/02/10,15:18:44.720,[OFF ],com.fujitsu.xframework.x31.X31SModelGroupFactory.init(X31SModelGroupFactory.java:202),モデル IF_バリエーション試験_内部モデル_multi のモデル識別コード=d82b75c7

2016/02/10,16:01:18.693,[TRACE ],com.fujitsu.xframework.x31.X31SLog.trace(X31SLog.java:656),X31CXMLPattern[0].X31CXMLPattern [評価判定テーブル.xml] 開始

Page 14: Framework におけるログ出力 - Fujitsu...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 3 第2章 ログ出力の仕組み 2.1 概要 Framework が提供するログ部品は、基本的にlog4j

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016

11

3.1.1.4 DAO

DAO が出力するログを以下に示します。これ以外にも DAO から SQL クエリを BPM のデバッグログに出力する機能を提供します。

(埋め込み文字列の使用は不可です。)

No ログ名 Logger 定義名 概要 出力ファイル例 出力項目例

1 デフォルトログ com.fujitsu.xframework.v00 起動時に異常があった場合などに出力されるログ。 標準出力 日時、重要度、スレッド名、出力元、ログ本文

3.1.1.5 マスタ検索部品

マスタ検索部品から出力するログを以下に示します。※現在使用しない機能のためログの出力はしません。

(埋め込み文字列の使用は不可です。)

No ログ名 Logger 定義名 概要 出力ファイル例 出力項目例

1 デフォルトログ MASTER.DEFAULT 起動時に異常があった場合などに出力されるログ。

(外部からロガーを渡すことができるため、基本的に使用されない。)

標準出力 日時、重要度、スレッド名、出力元、ログ本文

2 デバッグログ MASTER.DEBUG マスタ検索部品からデバッグ情報を出力するためのログ。

(外部からロガーを渡すことができるため、基本的に使用されない。)

標準出力 日時、重要度、スレッド名、出力元、ログ本文

3.1.1.6 キャッシュ部品

キャッシュ部品から出力するログを以下に示します。※現在使用しない機能のためログの出力はしません。

(埋め込み文字列の使用は不可です。)

No ログ名 Logger 定義名 概要 出力ファイル例 出力項目例

1 デフォルトログ CACHE.DEFAULT 起動時に異常があった場合などに出力されるログ。

(外部からロガーを渡すことができるため、基本的に使用されない。)

標準出力 日時、重要度、スレッド名、出力元、ログ本文

2 デバッグログ CACHE.DEBUG キャッシュ部品からデバッグ情報を出力するためのログ。

(外部からロガーを渡すことができるため、基本的に使用されない。)

標準出力 日時、重要度、スレッド名、出力元、ログ本文

Page 15: Framework におけるログ出力 - Fujitsu...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 3 第2章 ログ出力の仕組み 2.1 概要 Framework が提供するログ部品は、基本的にlog4j

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016

12

3.1.2 デバックログレベル変更 AP サーバで出力されるデバックログレベルはユーザの指定により変更が可能となります。

変更方法1と変更方法2を同時に実施した場合、変更方法1の設定が優先されます。変更しない場合は WARN のレベルを適用します。

変更方法1:リクエストヘッダで設定します。

投入したリクエストのリクエストヘッダのキー名に「X-Framework-Debug-Log-Level」を設定し値にログレベルを設定します。

変更方法2:通信制御定義ファイルで設定します。

通信制御定義ファイル「X71OperationInfo.csv」のログレベル設定箇所(カンマ区切りの5、6カラム目)にログレベルを設定します。

通信制御定義ファイル「X71OperationInfo.csv」の詳細については別紙「FW 全体定義体ガイド」を参照。

以下は設定例。

※ログレベルについては下記の文字列が設定可能。優先順位は左の方が高い。

OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL

# ファイル名 X71OperationInfo.csv

# 第 1 カラム ユースケース ID(修正不可)

# 第 2 カラム オペレーション ID(修正不可)

# 第 3 カラム リカバリーフラグ(修正不可)

# 第 4 カラム デバッグログレベル(修正可)

# 第 5 カラム 開始/終了ログレベル(修正可)

# 第 6 カラム ジャーナルログレベル(修正可)

UCCOMMON_COMMON,OPE_COMMON,FALSE,ALL,ALL,2

UCMODEL_MODEL,OPE_MODEL,FALSE,,,2

UCMODEL_MODEL_SCHEMA,OPE_MODEL_SCHEMA,FALSE,,,2

Page 16: Framework におけるログ出力 - Fujitsu...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 3 第2章 ログ出力の仕組み 2.1 概要 Framework が提供するログ部品は、基本的にlog4j

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016

13

第4章 トレースログ(XLOG)

トレースログは XLOG とも呼ばれ、アプリケーションの動作をトレースするためのログです。

トレースログの出力ポイントは固定ですが、出力する情報は任意に設定変更可能となっています。

出力ポイントに応じて、有効な出力可能な項目が異なります。

出力項目の設定は、log4j.xml のレイアウト定義で行います。(log4j の埋め込み文字列(日時など)も使用できます。)

4.1 フォーワード制御(API)サーバのトレースログ

4.1.1 出力ポイント

フォーワード制御サーバのトレースログとして出力するポイントを以下に示します。

No. 出力行 種別 説明 備考

1 処理開始 AA フォーワード制御サーバ処理開始時に出力します。

2 フォーワード実行後 AY フォーワード制御サーバから REST サーバ呼び出し終了時に出力します。

3 処理終了 AZ フォーワード制御サーバ処理終了時に出力します。

4.1.2 出力可能項目

フォーワード制御サーバのトレースログで出力可能な項目は以下に示します。

No. 分類 項目名 概要 埋め込み文字列 AA AY AZ 備考

1 制御ヘッダ 電文 ID 電文を一意に特定する ID。 TelegramID ○ ○ ○

2 依頼元 IP アドレス 依頼元 IP アドレス。 FromIP ○ ○ ○

3 セッション ID Web のセッション単位に一意に振られた ID。 SessionID - ○ ○

4 呼び出し時刻 通信制御サーバを呼び出した時刻。 SendTime ○ ○ ○

5 呼び出しチャネル 呼び出し元の分類 Channel - ○ ○

6 依頼元 IP アドレス(XFF) 依頼元 IP アドレス(XFF)。 FromClientIP - ○ ○

7 応答ヘッダ エラーレベル BPM のエラーレベル。 ErrorLevel - ○ -

8 システムエラーコード BPM のエラー情報内のシステムエラーコー

ド。

SystemErrorCode - ○ ○

9 時間 開始時間 開始時間。 StartTime ○ - ○

10 終了時間 終了時間。 EndTime ○ - ○

11 処理時間 処理時間。 ElapsedTime - ○ ○

12 HTTP情報 HTTP メソッド HTTP リクエストのメソッド(GET,POST)。 Method ○ ○ -

13 フォーワード前の拡張パス フォーワード前の拡張パス。 FromPath ○ - -

14 フォーワード先の拡張パス フォーワード先の拡張パス。 ToPath - ○ ○

15 オペレーション情報 ユースケースID ユースケースのID。 UsecaseID - ○ ○

16 オペレーションID オペレーションのID。 OperationID - ○ ○

17 復帰情報 HTTPステータスコード HTTPのステータスコード。 HttpStatusCode - - ○

18 システムエラーコード 通信制御サーバのシステムエラーコード。 SystemErrorCode - ○ ○

19 業務フリー情報 業務情報項目 1 業務が設定可能な項目 1 BusinessInformationMain ○ ○ ○

20 業務情報項目 2 業務が設定可能な項目 2 BusinessInformationSub ○ ○ ○

21 処理結果情報 業務エラー情報 エラー原因が特定可能なエラーコード。 BusinessErrorInformation - ○ -

22 応答エラーコード 画面等に出力するメッセージに紐付くエラー

コード。

ResponseErrorCode - ○ -

Page 17: Framework におけるログ出力 - Fujitsu...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 3 第2章 ログ出力の仕組み 2.1 概要 Framework が提供するログ部品は、基本的にlog4j

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016

14

4.2 通信制御(REST)サーバのトレースログ

4.2.1 出力ポイント

通信制御サーバのトレースログとして出力するポイントを以下に示します。

No. 出力行 種別 説明 備考

1 処理開始 RA 通信制御サーバ処理開始時に出力します。

2 BPM 実行後 RY 通信制御サーバから BPM 呼び出し終了時に出力します。

3 処理終了 RZ 通信制御サーバ処理終了時に出力します。

4.2.2 出力可能項目

通信制御サーバのトレースログで出力可能な項目は以下に示します。

No. 分類 項目名 概要 埋め込み文字列 RA RY RZ 備考

1 制御ヘッダ 電文 ID 電文を一意に特定する ID。 TelegramID ○ ○ ○

2 依頼元 IP アドレス 依頼元 IP アドレス。 FromIP ○ ○ ○

3 セッション ID Web のセッション単位に一意に振られた ID。 SessionID - ○ ○

4 呼び出し時刻 通信制御サーバを呼び出した時刻。 SendTime ○ ○ ○

5 呼び出しチャネル 呼び出し元の分類 Channel - ○ ○

6 依頼元 IP アドレス(XFF) 依頼元 IP アドレス(XFF)。 FromClientIP - ○ ○

7 応答ヘッダ エラーレベル BPM のエラーレベル。 ErrorLevel - ○ -

8 システムエラーコード BPM のエラー情報内のシステムエラーコード。 SystemErrorCode - ○ ○

9 時間 開始時間 開始時間。 StartTime ○ - ○

10 終了時間 終了時間。 EndTime ○ - ○

11 処理時間 処理時間。 ElapsedTime - ○ ○

12 オペレーション情報 ユースケースID ユースケースのID。 UsecaseID - ○ ○

13 オペレーションID オペレーションのID。 OperationID - ○ ○

14 復帰情報 HTTPステータスコード HTTPのステータスコード。 HttpStatusCode - - ○

15 システムエラーコード 通信制御サーバのシステムエラーコード。 SystemErrorCode - ○ ○

16 業務フリー情報 業務情報項目 1 業務が設定可能な項目 1 BusinessInformationMain ○ ○ ○

17 業務情報項目 2 業務が設定可能な項目 2 BusinessInformationSub ○ ○ ○

18 処理結果情報 業務エラー情報 エラー原因が特定可能なエラーコード。 BusinessErrorInformation - ○ -

19 応答エラーコード 画面等に出力するメッセージに紐付くエラーコード。 ResponseErrorCode - ○ -

Page 18: Framework におけるログ出力 - Fujitsu...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 3 第2章 ログ出力の仕組み 2.1 概要 Framework が提供するログ部品は、基本的にlog4j

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016

15

4.3 BPM のトレースログ

4.3.1 出力ポイント BPM のトレースログとして出力するポイントを以下に示します。

No. 出力行 種別 説明 備考

1 イベント開始 BA 同期処理、非同期処理の開始時に出力します。

2 サービス呼び出し BM モデルベースクラスの処理完了時に出力します。

4 イベント終了 BZ 同期処理、非同期処理の終了時に出力します。

4.3.2 出力可能項目 BPM のトレースログ各行で出力可能な項目を以下に示します。

No. 分類 項目名 概要 埋め込み文字列 BA BM BZ 備考

1 制御ヘッダ 電文 ID 電文を一意に特定する ID。 TelegramID ○ ○ ○

2 依頼元 IP アドレス 依頼元 IP アドレス。 FromIP ○ ○ ○

3 呼び出し時刻 通信制御サーバを呼び出した時刻。 SendTime ○ ○ ○

5 応答ヘッダ エラーレベル エラーのレベル値(000,400,800,888,988) ErrorLevel ○ ○ ○

7 システムエラーコード FW のシステムエラーコード。 SystemErrorCode ○ ○ ○

8 SQL 状態コード DB の SQL 状態コード。 SQLState - - ○

9 ベンダーエラーコード DB のベンダーエラーコード。 VenderErrorCode - - ○

15 階層構造コード 階層構造コード BPM のフロー階層の場所を特定する階層構造コード。 OperationPositionCode ○ ○ ○

17 実行対象 クラス名 実行したモデルベースクラス名。 ClassName ○ ○ ○

18 メソッド名 実行したモデルベースクラスのメソッド名。 MethodName ○ ○ ○

19 ユースケース ユースケースID ユースケースを特定するID。 UsecaseID ○ ○ ○

20 オペレーションID オペレーションを特定するID。 OperationID ○ ○ ○

22 時刻情報 開始時間 開始時間。 StartTime ○ ○ ○

23 終了時間 終了時間。 EndTime - ○ ○

24 処理時間 処理時間。 ElapsedTime - ○ ○

25 最新処理時間 最後に処理したモデルベースクラスの処理時刻。 LatestElapsedTime - ○ -

26 処理結果情報 直近エラーレベル 最後の処理したモデルベースクラスのエラーレベル。 LatestErrorLevel - ○ ○

27 業務エラー情報 エラー原因が特定可能なエラーコード。 BusinessErrorInformation - ○ ○

LatestBusinessErrorInformation ○

LatestResponseErrorCode ○

SystemAlert ○ ○

28 応答エラーコード 画面等に出力するメッセージに紐付くエラーコード。 ResponseErrorCode - ○ ○

36 業務フリー情報 業務情報項目 1 業務が設定可能な項目 1 BusinessInformationMain ○ ○ ○

37 業務情報項目 2 業務が設定可能な項目 2 BusinessInformationSub ○ ○ ○