全部产品
Search
文档中心

Application Real-Time Monitoring Service:Hubungkan ID jejak dengan log untuk aplikasi Java

更新时间:Sep 10, 2025

Application Real-Time Monitoring Service (ARMS) memungkinkan Anda menghubungkan ID jejak dengan log dari aplikasi Java. Dengan cara ini, jika terjadi kesalahan dalam aplikasi, Anda dapat mengakses log yang terkait dengan ID jejak untuk menemukan dan memperbaiki kesalahan tersebut.

Prasyarat

Catatan

Pemantauan Aplikasi Edisi Dasar tidak mendukung fitur ini.

Informasi latar belakang

Dalam ARMS, ID jejak dapat dihubungkan dengan log aplikasi berdasarkan mekanisme Mapped Diagnostic Context (MDC). Kerangka log utama seperti Log4j, Log4j 2, dan Logback didukung.

Prosedur

  1. Masuk ke Konsol ARMS. Di panel navigasi kiri, pilih Application Monitoring > Application List.

  2. Pilih wilayah di bilah navigasi atas dan klik aplikasi.

    Catatan

    Ikon di kolom Language menunjukkan bahasa pemrograman aplikasi:

    • Java图标: Java

    • image: Go

    • image: Python

    • - (Tanda hubung): aplikasi yang dipantau dalam Managed Service for OpenTelemetry.

  3. Di bilah navigasi atas, pilih Configuration > Custom Configurations.

  4. Di bagian Application log Association configuration pada tab Custom Configurations, atur Log Source menjadi Log service SLS. Nyalakan Automatically associate business logs with TraceId, pilih wilayah tempat Simple Log Service Anda diterapkan, dan ikat sebuah proyek dan Logstore.

    Anda juga bisa menyalakan Log secara otomatis diisi dengan traceId dan Log secara otomatis diisi dengan spanId sesuai kebutuhan.

    image

    Catatan
  5. (Opsional) Secara manual asosiasikan ID jejak.

    Tambahkan %X{EagleEye-TraceID} ke properti Pattern dari tata letak log. Jika Anda menggunakan protokol SkyWalking, tambahkan %X{Skywalking-TraceID} sebagai gantinya.

    Anda juga bisa mengasosiasikan ID rentang dengan menambahkan %X{span_id}.

    Penting
    • Asosiasi ID rentang hanya didukung oleh agen ARMS V4.x dan yang lebih baru.

    • Untuk informasi tentang cara mendapatkan {EagleEye-TraceID} di kode, lihat SDK ARMS.

    Berikut adalah contoh cara memodifikasi file konfigurasi kerangka Log4j, Log4j2, dan Logback:

    • Modifikasi file konfigurasi 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
    • Modifikasi file konfigurasi Log4j2 log4j2.xml:

      PatternLayout

      <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

      <JsonLayout   complete="false" compact="true" eventEol="true"
                    properties="false" locationInfo="true"
                    includeStacktrace="true" stacktraceAsString="true"
                    objectMessageAsJsonObject="true" >
          <KeyValuePair key="EagleEye-TraceID" value="${ctx:EagleEye-TraceID}" />
          <KeyValuePair key="span_id" value="${ctx:span_id}" />
      </JsonLayout>
    • Modifikasi file konfigurasi 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. Mulai ulang aplikasi.

    Jika ID jejak ditampilkan di log aplikasi, log tersebut telah dihubungkan dengan ID jejak, seperti yang ditunjukkan pada gambar berikut.dg_am_log_traceid

  7. (Opsional) Konfigurasikan pengumpulan log dan unggah log aplikasi ke proyek dan Logstore.

    Secara default, agen ARMS untuk Java tidak mengumpulkan log aplikasi.