Related to #6947, but just cleans up the library module doc that already existed (mostly for uniformity). Does not introduce any new doc. |
||
|---|---|---|
| .. | ||
| src | ||
| README.md | ||
| build.gradle.kts | ||
README.md
Appender Instrumentation for Logback version 1.0 and higher
This module provides a Logback appender which forwards Logback log events to the OpenTelemetry Log SDK.
Quickstart
Add these dependencies to your project:
Replace OPENTELEMETRY_VERSION with the latest
release.
For Maven, add to your pom.xml dependencies:
<dependencies>
<dependency>
<groupId>io.opentelemetry.instrumentation</groupId>
<artifactId>opentelemetry-logback-appender-1.0</artifactId>
<version>OPENTELEMETRY_VERSION</version>
<scope>runtime</scope>
</dependency>
</dependencies>
For Gradle, add to your dependencies:
runtimeOnly("io.opentelemetry.instrumentation:opentelemetry-logback-appender-1.0:OPENTELEMETRY_VERSION")
Usage
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.