From 48924cb9697ae82cc76f78d8e7f0a95955fb80bd Mon Sep 17 00:00:00 2001 From: Jean Bisutti Date: Wed, 21 Feb 2024 21:13:42 +0100 Subject: [PATCH] Ability to disable the automatic Logback appender addition --- .../LogbackAppenderApplicationListener.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/instrumentation/logging/LogbackAppenderApplicationListener.java b/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/instrumentation/logging/LogbackAppenderApplicationListener.java index cc5514f15bf8..ae45e546b286 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/instrumentation/logging/LogbackAppenderApplicationListener.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/instrumentation/logging/LogbackAppenderApplicationListener.java @@ -63,12 +63,25 @@ public void onApplicationEvent(ApplicationEvent event) { if (existingOpenTelemetryAppender.isPresent()) { reInitializeOpenTelemetryAppender( existingOpenTelemetryAppender, applicationEnvironmentPreparedEvent); - } else { + } else if (isLogbackAppenderAddable(applicationEnvironmentPreparedEvent)) { addOpenTelemetryAppender(applicationEnvironmentPreparedEvent); } } } + private static boolean isLogbackAppenderAddable( + ApplicationEnvironmentPreparedEvent applicationEnvironmentPreparedEvent) { + Boolean otelSdkDisableProperty = + evaluateBooleanProperty(applicationEnvironmentPreparedEvent, "otel.sdk.disabled"); + Boolean logbackInstrumentationEnabledProperty = + evaluateBooleanProperty( + applicationEnvironmentPreparedEvent, "otel.instrumentation.logback-appender.enabled"); + return otelSdkDisableProperty == null + || !otelSdkDisableProperty.booleanValue() + || logbackInstrumentationEnabledProperty == null + || logbackInstrumentationEnabledProperty.booleanValue(); + } + private static void reInitializeOpenTelemetryAppender( Optional existingOpenTelemetryAppender, ApplicationEnvironmentPreparedEvent applicationEnvironmentPreparedEvent) {