11package io .opentelemetry .example .logappender ;
22
33import io .opentelemetry .api .GlobalOpenTelemetry ;
4- import io .opentelemetry .api .OpenTelemetry ;
54import io .opentelemetry .api .common .AttributeKey ;
65import io .opentelemetry .api .logs .Severity ;
76import io .opentelemetry .api .trace .Span ;
87import io .opentelemetry .context .Scope ;
9- import io .opentelemetry .exporter .otlp .logs .OtlpGrpcLogRecordExporter ;
10- import io .opentelemetry .sdk .OpenTelemetrySdk ;
11- import io .opentelemetry .sdk .logs .SdkLoggerProvider ;
12- import io .opentelemetry .sdk .logs .export .BatchLogRecordProcessor ;
13- import io .opentelemetry .sdk .resources .Resource ;
14- import io .opentelemetry .sdk .trace .SdkTracerProvider ;
15- import io .opentelemetry .sdk .trace .samplers .Sampler ;
16- import io .opentelemetry .semconv .ResourceAttributes ;
178import java .util .HashMap ;
189import java .util .Map ;
1910import java .util .logging .Level ;
@@ -32,15 +23,6 @@ public class Application {
3223 private static final java .util .logging .Logger julLogger = Logger .getLogger ("jul-logger" );
3324
3425 public static void main (String [] args ) {
35- // Initialize OpenTelemetry as early as possible
36- OpenTelemetry openTelemetry = initializeOpenTelemetry ();
37- // Install OpenTelemetry in log4j appender
38- io .opentelemetry .instrumentation .log4j .appender .v2_17 .OpenTelemetryAppender .install (
39- openTelemetry );
40- // Install OpenTelemetry in logback appender
41- io .opentelemetry .instrumentation .logback .appender .v1_0 .OpenTelemetryAppender .install (
42- openTelemetry );
43-
4426 // Route JUL logs to slf4j
4527 SLF4JBridgeHandler .removeHandlersForRootLogger ();
4628 SLF4JBridgeHandler .install ();
@@ -86,7 +68,7 @@ public static void main(String[] args) {
8668 // existing frameworks into the OpenTelemetry Log Bridge API. These APIs
8769 // SHOULD NOT be used by end users in place of existing log APIs (i.e. Log4j, Slf4, JUL).
8870 io .opentelemetry .api .logs .Logger customAppenderLogger =
89- openTelemetry .getLogsBridge ().get ("custom-log-appender" );
71+ GlobalOpenTelemetry . get () .getLogsBridge ().get ("custom-log-appender" );
9072 maybeRunWithSpan (
9173 () ->
9274 customAppenderLogger
@@ -107,31 +89,6 @@ public static void main(String[] args) {
10789 true );
10890 }
10991
110- private static OpenTelemetry initializeOpenTelemetry () {
111- OpenTelemetrySdk sdk =
112- OpenTelemetrySdk .builder ()
113- .setTracerProvider (SdkTracerProvider .builder ().setSampler (Sampler .alwaysOn ()).build ())
114- .setLoggerProvider (
115- SdkLoggerProvider .builder ()
116- .setResource (
117- Resource .getDefault ().toBuilder ()
118- .put (ResourceAttributes .SERVICE_NAME , "log4j-example" )
119- .build ())
120- .addLogRecordProcessor (
121- BatchLogRecordProcessor .builder (
122- OtlpGrpcLogRecordExporter .builder ()
123- .setEndpoint ("http://localhost:4317" )
124- .build ())
125- .build ())
126- .build ())
127- .build ();
128-
129- // Add hook to close SDK, which flushes logs
130- Runtime .getRuntime ().addShutdownHook (new Thread (sdk ::close ));
131-
132- return sdk ;
133- }
134-
13592 private static void maybeRunWithSpan (Runnable runnable , boolean withSpan ) {
13693 if (!withSpan ) {
13794 runnable .run ();
0 commit comments