opentelemetry-java-instrume.../instrumentation/logback/logback-appender-1.0/library
jack-berg aeac361816
Upgrade to otel java 1.19.0 (#6757)
Working PR to capture all the changes required to update to otel java
1.19.0. The new log API force allows
`:instrumentation-appender-api-internal` and
`:instrumentation-appender-sdk-internal`, but necessitates a decent
amount of refactoring as a result.

The PR points at the `1.19.0-SNAPSHOT`, which I'll update upon
publication.

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
Co-authored-by: Lauri Tulmin <ltulmin@splunk.com>
2022-10-12 09:19:37 -07:00
..
src Upgrade to otel java 1.19.0 (#6757) 2022-10-12 09:19:37 -07:00
README.md Upgrade to otel java 1.19.0 (#6757) 2022-10-12 09:19:37 -07:00
build.gradle.kts Upgrade to otel java 1.19.0 (#6757) 2022-10-12 09:19:37 -07:00

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>
  </dependency>
</dependencies>

Gradle

dependencies {
  runtimeOnly("io.opentelemetry.instrumentation:opentelemetry-logback-appender-1.0: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, configure GlobalLoggerProvider with an SdkLoggerProvider in your application.

SdkLoggerProvider sdkLoggerProvider =
  SdkLoggerProvider.builder()
    .setResource(Resource.create(...))
    .addLogProcessor(...)
    .build();
GlobalLoggerProvider.set(sdkLoggerProvider);

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