- Transaction Manager for Microservices開発者ガイド
- トランザクションのモニターおよびトレース
- ログ
- ログ・メッセージの構文の定義
14.4.1 ログ・メッセージの構文の定義
ログに記録する詳細とログ・メッセージの構文を指定します。
KubernetesクラスタでMicroTxによって生成されたログを表示するには、MicroTxコーディネータおよびアプリケーションのログ・ファイルを1つの場所に集約して表示するように、次のいずれかのスタックまたは他のアプリケーションを設定します。
- Elasticsearch、FluentdまたはFluent Bit、およびKibana (EFK)スタック
- Elasticsearch、LogStashおよびKibana (ELK)スタック
EFKまたはELKスタックの設定の詳細は、アプリケーションの製品ドキュメントを参照してください。
EFKまたはELKスタックを設定したら、次のステップを1回実行して、ログに記録する詳細とログ・メッセージの構文を指定する必要があります。
- ログ・アグリゲータのパーサー・フィルタを定義します。次の例では、Fluentbitのパーサーを定義しています。
Regex
フィールドでは、ログ・メッセージの構文とログに記録する詳細を指定します。同様に、使用するログ・アグリゲータのパーサーを定義できます。詳細は、ログ・アグリゲータの製品ドキュメントを参照してください。[PARSER] Name mtxnodejslib Format regex Regex ^(?<timestamp>\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z)\s+::\s+(?<transactionId>[a-f0-9-]+)\s+-\s+(?<message>.+)$ Time_Key timestamp Time_Format %Y-%m-%dT%H:%M:%S.%zZ [PARSER] Name mtxlraspringbootlib Format regex Regex ^(?<timestamp>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3})\s+(?<log_level>\w+)\s+(?<numeric_value>\d+)\s+---\s+\[(?<thread_info>[\w-]+)\]\s+(?<logger_name>\S+)\s+:\s+(?<transactionId>\S+)\s+-\s+(?<message>.+)$ Time_Key timestamp Time_Format %Y-%m-%d %H:%M:%S.%z [PARSER] Name mtxhelidon Format regex Regex ^(?<timestamp>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3})\s+(?<log_level>\w+)\s+---\s+\[(?<thread_name>[^\]]+)\]\s+(?<logger_name>[^:]+)\s+:\s+(?<transactionId>[a-f0-9-]+)\s+:\s+(?<log_message>.+)$ Time_Key timestamp Time_Format %Y-%m-%d %H:%M:%S.%z [PARSER] Name mtxxaspringbootlib Format regex Regex ^(?<timestamp>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3})\s+(?<log_level>\w+)\s+\d+\s+---\s+\[(?<thread_name>[^\]]+)\]\s+(?<logger_name>[^:]+)\s+:\s+(?<transactionId>[a-f0-9-]+)\s+:\s+(?<log_message>.+)$ Time_Key timestamp Time_Format %Y-%m-%d %H:%M:%S.%z
パーサーで指定した構文に対応するサンプル・ログを表示するには、「サンプル・ログ・メッセージ」を参照してください。 - Helidonアプリケーション用のMicroTx Javaライブラリの場合、ログ・メッセージの構文を指定するための
XML
ファイル(log4j2.xml
など)をアプリケーションのresources
フォルダに作成します。たとえば、src/main/resources/log4j2.xml
です。-
次のコード・サンプルは、ログ・メッセージ内の様々なフィールドの位置を指定する方法を示しています。
<Console name="MicroTxLib" target="SYSTEM_OUT"> <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level --- [%t] %-50.70C : [microtx-log] %X{microtx-txnId} : %msg%n%throwable"/> </Console>
説明
MicroTxLib
: この名前は、後でLogger
セクションでログに記録するパッケージを定義するために指定するため、書き留めておきます。PatternLayout
: ログ・メッセージの構文を指定します。[microtx-log]
: MicroTxライブラリによって生成されたログ・メッセージの先頭に付けられます。これにより、MicroTxライブラリによって生成されたログ・メッセージと、アプリケーションによって生成されたメッセージを区別できます。[microtx-log]
を使用してMicroTxライブラリによって生成されたすべてのログ・メッセージをフィルタします。%X{microtx-txnId}
: 一意のトランザクションIDを示します。MicroTxがメッセージをログに記録するときに、%X{microtx-txnId}
は実際のトランザクションIDに置き換えられます。
- 前のステップで指定したログ・メッセージ定義を使用するMicroTxパッケージの名前を指定します。
<Logger name="oracle.tmm" level="DEBUG" additivity="false"> <AppenderRef ref="MicroTxLib"/> </Logger> <Logger name="com.oracle" level="TRACE" additivity="false"> <AppenderRef ref="MicroTxLib"/> </Logger>
説明
oracle.tmm
およびcom.oracle
は、メッセージをログに記録するMicroTxパッケージの名前です。DEBUG
およびTRACE
はログ・レベルです。次のいずれかの値を入力して、MicroTxライブラリのログ・レベルを指定します:INFO
: MicroTxの通常の操作中に発生するイベントをログに記録します。この設定では、最小限の情報を記録します。これはデフォルトの設定です。WARNING
: 有害な状況を引き起こす可能性のあるイベントをログに記録します。ERROR
: トラブルシューティングが必要な問題があることを示すためにイベントをログに記録します。DEBUG
: すべてのイベントをログに記録します。この設定は、問題をデバッグする場合に使用します。
MicroTxLib
は、AppenderRef
の値です。この値は、前のステップで入力したname
の値と一致する必要があります。
次のコードでは、
log4j2.xml
ファイルのサンプル・エントリを示します。<?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level --- [%t] %-50.70C : [microtx-log] %X{microtx-txnId} : %msg%n%throwable"/> </Console> <Console name="MicroTxLib" target="SYSTEM_OUT"> <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level --- [%t] %-50.70C : [microtx-log] %X{microtx-txnId} : %msg%n%throwable"/> </Console> </Appenders> <Loggers> <Logger name="oracle.tmm" level="DEBUG" additivity="false"> <AppenderRef ref="MicroTxLib"/> </Logger> <Logger name="com.oracle" level="TRACE" additivity="false"> <AppenderRef ref="MicroTxLib"/> </Logger> <Root level="info"> <AppenderRef ref="Console"/> </Root> </Loggers> </Configuration>
-
- Spring RESTアプリケーション用のMicroTx Javaライブラリの場合、ログ・メッセージの構文を指定するための
XML
ファイルをアプリケーションのresources
フォルダに作成します。たとえば、src/main/resources/logback-spring.xml
です。-
次のコード・サンプルは、ログ・メッセージ内の様々なフィールドの位置を指定するアペンダの定義方法を示しています。
<appender name="ConsoleMTX" class="ch.qos.logback.core.ConsoleAppender"> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern> %clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} [microtx-log] %X{microtx-txnId} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx} </Pattern> </layout> </appender>
説明
ConsoleMTX
: この名前は、後でLogger
セクションでログに記録するパッケージを定義するために指定するため、書き留めておきます。Pattern
: ログ・メッセージの構文を指定します。[microtx-log]
: MicroTxライブラリによって生成されたログ・メッセージの先頭に付けられます。これにより、MicroTxライブラリによって生成されたログ・メッセージと、アプリケーションによって生成されたメッセージを区別できます。[microtx-log]
を使用してMicroTxライブラリによって生成されたすべてのログ・メッセージをフィルタします。%X{microtx-txnId}
: 一意のトランザクションIDを示します。MicroTxがメッセージをログに記録するときに、%X{microtx-txnId}
は実際のトランザクションIDに置き換えられます。
- 前のステップで定義したアペンダを使用するMicroTxパッケージの名前を指定します。
<Logger name="oracle.tmm" level="TRACE" additivity="false"> <AppenderRef ref="ConsoleMTX"/> </Logger> <Logger name="com.oracle" level="DEBUG" additivity="false"> <AppenderRef ref="ConsoleMTX"/> </Logger>
説明
oracle.tmm
およびcom.oracle
は、メッセージをログに記録するMicroTxパッケージの名前です。TRACE
およびDEBUG
はログ・レベルです。次のいずれかの値を入力して、MicroTxライブラリのログ・レベルを指定します:INFO
: MicroTxの通常の操作中に発生するイベントをログに記録します。この設定では、最小限の情報を記録します。これはデフォルトの設定です。WARNING
: 有害な状況を引き起こす可能性のあるイベントをログに記録します。ERROR
: トラブルシューティングが必要な問題があることを示すためにイベントをログに記録します。DEBUG
: すべてのイベントをログに記録します。この設定は、問題をデバッグする場合に使用します。
ConsoleMTX
は、AppenderRef
の値です。この値は、前のステップで入力したappender name
の値と一致する必要があります。
-
別のツールを使用して情報をログに記録する場合は、同様の方法でログ・メッセージの構文を指定します。
親トピック: ログ