@@ -82,6 +82,12 @@ dependencies {
8282// reference unshaded java.util.logging.Logger
8383// (java.util.logging.Logger shading is not needed in any of the instrumentation modules,
8484// but it is needed for the dependencies, e.g. guava, which use java.util.logging.Logger)
85+ // -- AND ALSO --
86+ // need to perform shading in two steps in order to avoid shading ch.qos.logback.*
87+ // in opentelemetry-javaagent-logback-spans-1.0 since that instrumentation needs to
88+ // reference unshaded ch.qos.logback.*
89+ // (ch.qos.logback.* shading is not needed in any of the instrumentation modules,
90+ // but it is needed for agent-tooling, which use logback to update levels dynamically in LazyConfigurationAccessor)
8591task shadowJarStep1 (type : com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar ) {
8692
8793 archiveClassifier. set(' step1' )
@@ -91,17 +97,22 @@ task shadowJarStep1(type: com.github.jengelman.gradle.plugins.shadow.tasks.Shado
9197
9298 dependencies {
9399 exclude(dependency(' io.opentelemetry.javaagent.instrumentation:opentelemetry-javaagent-java-util-logging-spans' ))
100+ exclude(dependency(' io.opentelemetry.javaagent.instrumentation:opentelemetry-javaagent-logback-spans-1.0' ))
94101
95102 // exclude bootstrap dependencies from shadowJar
96103 exclude(dependency(' io.opentelemetry.javaagent.instrumentation:opentelemetry-javaagent-bootstrap' ))
97104 exclude(dependency(' io.opentelemetry:opentelemetry-api' ))
98105 exclude(dependency(' io.opentelemetry:opentelemetry-context-prop' ))
99106 exclude(dependency(' io.grpc:grpc-context' ))
100107 exclude(dependency(' org.slf4j:slf4j-api' ))
108+ exclude(dependency(' ch.qos.logback:logback-classic' ))
109+ exclude(dependency(' ch.qos.logback:logback-core' ))
101110 }
102111
103112 // rewrite dependencies calling Logger.getLogger
104113 relocate ' java.util.logging.Logger' , ' io.opentelemetry.javaagent.bootstrap.PatchLogger'
114+
115+ relocate ' ch.qos.logback' , " com.microsoft.applicationinsights.agent.shadow.ch.qos.logback"
105116}
106117
107118
@@ -122,6 +133,8 @@ shadowJar {
122133 exclude(dependency(' io.opentelemetry:opentelemetry-context-prop' ))
123134 exclude(dependency(' io.grpc:grpc-context' ))
124135 exclude(dependency(' org.slf4j:slf4j-api' ))
136+ exclude(dependency(' ch.qos.logback:logback-classic' ))
137+ exclude(dependency(' ch.qos.logback:logback-core' ))
125138 }
126139
127140 mergeServiceFiles()
0 commit comments