すべてのプロダクト
Search
ドキュメントセンター

Application Real-Time Monitoring Service:Java アプリケーションのログにトレース ID を関連付ける

最終更新日:Sep 09, 2025

Application Real-Time Monitoring Service (ARMS) を使用すると、Java アプリケーションのログにトレース ID を関連付けることができます。これにより、アプリケーションでエラーが発生した場合、トレース ID に関連付けられたログにアクセスして、エラーを特定し、トラブルシューティングすることができます。

前提条件

説明

Application Real-Time Monitoring Service Basic Edition は、この機能をサポートしていません。

背景情報

ARMS では、トレース ID は、Mapped Diagnostic Context(MDC)メカニズムに基づいてアプリケーションのログに関連付けることができます。 Log4j、Log4j 2、Logback などの主要なログ フレームワークがサポートされています。

手順

  1. ARMS コンソール にログオンします。左側のナビゲーションウィンドウで、[アプリケーションモニタリング] > [アプリケーションリスト] を選択します。

  2. 上部のナビゲーションバーでリージョンを選択し、アプリケーションをクリックします。

    説明

    [言語] 列のアイコンは、アプリケーションのプログラミング言語を示します。

    • Java图标: Java

    • image: Go

    • image: Python

    • - (ハイフン): Managed Service for OpenTelemetry で監視されているアプリケーション

  3. 上部のナビゲーションバーで、[構成] > [カスタム構成] を選択します。

  4. [アプリケーションログ関連付け構成] セクションの [カスタム構成] タブで、[ログソース][Log Service SLS] に設定します。[ビジネスログを TraceId と自動的に関連付ける] をオンにし、Simple Log Service がデプロイされているリージョンを選択し、プロジェクトと Logstore をバインドします。

    必要に応じて、[ログに traceId が自動的に入力される][ログに spanId が自動的に入力される] もオンにすることができます。

    image

    説明
  5. (任意) 手動でトレース ID を関連付けます。

    ログレイアウトの Pattern プロパティに %X{EagleEye-TraceID} を追加します。SkyWalking プロトコルを使用する場合は、代わりに %X{Skywalking-TraceID} を追加します。

    %X{span_id} を追加することで、スパン ID を関連付けることもできます。

    重要
    • スパン ID の関連付けは、ARMS エージェント V4.x 以降でのみサポートされています。

    • コードで {EagleEye-TraceID} を取得する方法については、「ARMS SDK」をご参照ください。

    以下の例では、Log4j、Log4j2、および Logback フレームワークの構成ファイルを変更する方法について説明します。

    • Log4j 構成ファイル log4j.properties を変更します:

      log4j.appender.warn.layout=org.apache.log4j.PatternLayout
      log4j.appender.warn.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}-[%p]-(%C:%L) - traceId:%X{EagleEye-TraceID} - spanId:%X{span_id} - %m%n
    • Log4j2 構成ファイル log4j2.xml を変更します:

      パターンレイアウト

      <console name="Console" target="SYSTEM_OUT">
          <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
          <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - traceId:%X{EagleEye-TraceID} - spanId:%X{span_id} - %m%n"/> <!-- パターンレイアウト -->
      </console>

      JsonLayout

      None
    • Logback 構成ファイル logback.xml を変更します。

      PatternLayout

      <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
          <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - traceId:%X{EagleEye-TraceID} - spanId:%X{span_id} - %msg%n</pattern>
      </encoder>

      JsonLayout

      <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
      	<providers>
      		<timestamp/>
      		<threadName/>
      		<logLevel/>
      		<loggerName/>
      		<message/>
      		<callerData/>
      		<stackTrace/>
      		<pattern>
      			<pattern>
      				{
      				"EagleEye-TraceID": "%X{EagleEye-TraceID}",
                                      "span_id": "%X{span_id}"
      				}
      			</pattern>
      		</pattern>
      	</providers>
      </encoder>
  6. アプリケーションを再起動します。

    トレース ID がアプリケーション ログに表示されている場合、ログは次の図に示すようにトレース ID に関連付けられます。dg_am_log_traceid

  7. (オプション) ログ収集を設定し、アプリケーションログをプロジェクトと Logstore にアップロードします。

    デフォルトでは、Java 用 ARMS エージェントはアプリケーションログを収集しません。