Anuraag Agrawal f6bcd76219 Update errorprone (#5016) 3 năm trước cách đây
..
src f6bcd76219 Update errorprone (#5016) 3 năm trước cách đây
README.md 935cb88ff4 Add logback appender (#4984) 3 năm trước cách đây
build.gradle.kts 7c58220d65 Fix logback testLatestDeps (#5010) 3 năm trước cách đây

README.md

Logback Appender

This module provides a Logback appender which forwards Logback log events to the OpenTelemetry Log SDK

To use it, add the following modules to your application's classpath.

Replace OPENTELEMETRY_VERSION with the latest stable release.

Maven

<dependencies>
  <dependency>
    <groupId>io.opentelemetry.instrumentation</groupId>
    <artifactId>opentelemetry-logback-appender-1.0</artifactId>
    <version>OPENTELEMETRY_VERSION</version>
    <scope>runtime</scope>
  </dependency>
  <dependency>
    <!-- The SDK appender is required to configure the appender with the OpenTelemetry Log SDK -->
    <groupId>io.opentelemetry.instrumentation</groupId>
    <artifactId>opentelemetry-instrumentation-sdk-appender</artifactId>
    <version>OPENTELEMETRY_VERSION</version>
  </dependency>
</dependencies>

Gradle

dependencies {
  runtimeOnly("io.opentelemetry.instrumentation:opentelemetry-logback-appender-1.0:OPENTELEMETRY_VERSION")
  // The SDK appender is required to configure the appender with the OpenTelemetry Log SDK
  implementation("io.opentelemetry.instrumentation:opentelemetry-instrumentation-sdk-appender:OPENTELEMETRY_VERSION")
}

The following demonstrates how you might configure the appender in your logback.xml configuration:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

  <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>
        %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
      </pattern>
    </encoder>
  </appender>
  <appender name="OpenTelemetry" class="io.opentelemetry.instrumentation.logback.appender.v1_0.OpenTelemetryAppender">
  </appender>

  <root level="INFO">
    <appender-ref ref="console"/>
    <appender-ref ref="OpenTelemetry" />
  </root>

</configuration>

Next, associate the OpenTelemetry configured via logback.xml with a SdkLogEmitterProvider in your application:

SdkLogEmitterProvider logEmitterProvider =
  SdkLogEmitterProvider.builder()
    .setResource(Resource.create(...))
    .addLogProcessor(...)
    .build();
GlobalLogEmitterProvider.set(DelegatingLogEmitterProvider.from(logEmitterProvider));

In this example Logback log events will be sent to both the console appender and the OpenTelemetryAppender, which will drop the logs until GlobalLogEmitterProvider.set(..) is called. Once initialized, logs will be emitted to a LogEmitter obtained from the SdkLogEmitterProvider.