Browse Source

Bump log4j version for library instrumentation to 2.17 (#5849)

* Bump log4j library version to 2.17

* muzzle
Trask Stalnaker 2 years ago
parent
commit
85061691fe
26 changed files with 37 additions and 40 deletions
  1. 2 2
      docs/standalone-library-instrumentation.md
  2. 2 2
      instrumentation/log4j/log4j-appender-2.17/javaagent/build.gradle.kts
  3. 0 0
      instrumentation/log4j/log4j-appender-2.17/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/appender/v2_16/Log4jAppenderInstrumentation.java
  4. 1 1
      instrumentation/log4j/log4j-appender-2.17/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/appender/v2_16/Log4jAppenderInstrumentationModule.java
  5. 0 0
      instrumentation/log4j/log4j-appender-2.17/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/appender/v2_16/Log4jHelper.java
  6. 0 0
      instrumentation/log4j/log4j-appender-2.17/javaagent/src/test/groovy/Log4j2Test.groovy
  7. 0 0
      instrumentation/log4j/log4j-appender-2.17/javaagent/src/test/resources/log4j2.xml
  8. 2 2
      instrumentation/log4j/log4j-appender-2.17/library/README.md
  9. 1 1
      instrumentation/log4j/log4j-appender-2.17/library/build.gradle.kts
  10. 0 0
      instrumentation/log4j/log4j-appender-2.17/library/src/main/java/io/opentelemetry/instrumentation/log4j/appender/v2_16/OpenTelemetryAppender.java
  11. 0 0
      instrumentation/log4j/log4j-appender-2.17/library/src/main/java/io/opentelemetry/instrumentation/log4j/appender/v2_16/internal/ContextDataAccessor.java
  12. 0 0
      instrumentation/log4j/log4j-appender-2.17/library/src/main/java/io/opentelemetry/instrumentation/log4j/appender/v2_16/internal/LogEventMapper.java
  13. 0 0
      instrumentation/log4j/log4j-appender-2.17/library/src/test/java/io/opentelemetry/instrumentation/log4j/appender/v2_16/OpenTelemetryAppenderConfigTest.java
  14. 0 0
      instrumentation/log4j/log4j-appender-2.17/library/src/test/java/io/opentelemetry/instrumentation/log4j/appender/v2_16/internal/LogEventMapperTest.java
  15. 0 0
      instrumentation/log4j/log4j-appender-2.17/library/src/test/resources/log4j2-test.xml
  16. 3 3
      instrumentation/log4j/log4j-context-data/log4j-context-data-2.17/javaagent/build.gradle.kts
  17. 6 10
      instrumentation/log4j/log4j-context-data/log4j-context-data-2.17/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/v2_16/Log4j2InstrumentationModule.java
  18. 0 0
      instrumentation/log4j/log4j-context-data/log4j-context-data-2.17/javaagent/src/test/groovy/AutoLog4j2Test.groovy
  19. 2 2
      instrumentation/log4j/log4j-context-data/log4j-context-data-2.17/library-autoconfigure/README.md
  20. 1 1
      instrumentation/log4j/log4j-context-data/log4j-context-data-2.17/library-autoconfigure/build.gradle.kts
  21. 0 0
      instrumentation/log4j/log4j-context-data/log4j-context-data-2.17/library-autoconfigure/src/main/java/io/opentelemetry/instrumentation/log4j/v2_16/OpenTelemetryContextDataProvider.java
  22. 0 0
      instrumentation/log4j/log4j-context-data/log4j-context-data-2.17/library-autoconfigure/src/main/resources/META-INF/services/org.apache.logging.log4j.core.util.ContextDataProvider
  23. 0 0
      instrumentation/log4j/log4j-context-data/log4j-context-data-2.17/library-autoconfigure/src/test/groovy/LibraryLog4j2Test.groovy
  24. 3 3
      instrumentation/log4j/log4j-context-data/log4j-context-data-2.7/javaagent/build.gradle.kts
  25. 10 9
      instrumentation/log4j/log4j-context-data/log4j-context-data-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/v2_7/Log4j27InstrumentationModule.java
  26. 4 4
      settings.gradle.kts

+ 2 - 2
docs/standalone-library-instrumentation.md

@@ -15,8 +15,8 @@ that can be used if you prefer that over using the Java agent:
 * [Ktor 1.0](../instrumentation/ktor/ktor-1.0/library)
 * [Ktor 2.0](../instrumentation/ktor/ktor-2.0/library)
 * [Lettuce](../instrumentation/lettuce/lettuce-5.1/library)
-* [Log4j appender](../instrumentation/log4j/log4j-appender-2.16/library)
-* [Log4j thread context](../instrumentation/log4j/log4j-context-data/log4j-context-data-2.16/library-autoconfigure)
+* [Log4j appender](../instrumentation/log4j/log4j-appender-2.17/library)
+* [Log4j thread context](../instrumentation/log4j/log4j-context-data/log4j-context-data-2.17/library-autoconfigure)
 * [Logback](../instrumentation/logback/logback-appender-1.0/library)
 * [MongoDB Driver](../instrumentation/mongo/mongo-3.1/library)
 * [OkHttp](../instrumentation/okhttp/okhttp-3.0/library)

+ 2 - 2
instrumentation/log4j/log4j-appender-2.16/javaagent/build.gradle.kts → instrumentation/log4j/log4j-appender-2.17/javaagent/build.gradle.kts

@@ -12,12 +12,12 @@ muzzle {
 }
 
 dependencies {
-  library("org.apache.logging.log4j:log4j-core:2.16.0")
+  library("org.apache.logging.log4j:log4j-core:2.17.0")
 
   compileOnly(project(":instrumentation-appender-api-internal"))
   compileOnly(project(":javaagent-bootstrap"))
 
-  implementation(project(":instrumentation:log4j:log4j-appender-2.16:library"))
+  implementation(project(":instrumentation:log4j:log4j-appender-2.17:library"))
 
   testImplementation("org.awaitility:awaitility")
 

+ 0 - 0
instrumentation/log4j/log4j-appender-2.16/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/appender/v2_16/Log4jAppenderInstrumentation.java → instrumentation/log4j/log4j-appender-2.17/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/appender/v2_16/Log4jAppenderInstrumentation.java


+ 1 - 1
instrumentation/log4j/log4j-appender-2.16/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/appender/v2_16/Log4jAppenderInstrumentationModule.java → instrumentation/log4j/log4j-appender-2.17/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/appender/v2_16/Log4jAppenderInstrumentationModule.java

@@ -16,7 +16,7 @@ import java.util.List;
 public class Log4jAppenderInstrumentationModule extends InstrumentationModule {
 
   public Log4jAppenderInstrumentationModule() {
-    super("log4j-appender", "log4j-appender-2.16");
+    super("log4j-appender", "log4j-appender-2.17");
   }
 
   @Override

+ 0 - 0
instrumentation/log4j/log4j-appender-2.16/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/appender/v2_16/Log4jHelper.java → instrumentation/log4j/log4j-appender-2.17/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/appender/v2_16/Log4jHelper.java


+ 0 - 0
instrumentation/log4j/log4j-appender-2.16/javaagent/src/test/groovy/Log4j2Test.groovy → instrumentation/log4j/log4j-appender-2.17/javaagent/src/test/groovy/Log4j2Test.groovy


+ 0 - 0
instrumentation/log4j/log4j-appender-2.16/javaagent/src/test/resources/log4j2.xml → instrumentation/log4j/log4j-appender-2.17/javaagent/src/test/resources/log4j2.xml


+ 2 - 2
instrumentation/log4j/log4j-appender-2.16/library/README.md → instrumentation/log4j/log4j-appender-2.17/library/README.md

@@ -16,7 +16,7 @@ stable [release](https://search.maven.org/search?q=g:io.opentelemetry.instrument
 <dependencies>
   <dependency>
     <groupId>io.opentelemetry.instrumentation</groupId>
-    <artifactId>opentelemetry-log4j-appender-2.16</artifactId>
+    <artifactId>opentelemetry-log4j-appender-2.17</artifactId>
     <version>OPENTELEMETRY_VERSION</version>
   </dependency>
 </dependencies>
@@ -26,7 +26,7 @@ stable [release](https://search.maven.org/search?q=g:io.opentelemetry.instrument
 
 ```kotlin
 dependencies {
-  runtimeOnly("io.opentelemetry.instrumentation:opentelemetry-log4j-appender-2.16:OPENTELEMETRY_VERSION")
+  runtimeOnly("io.opentelemetry.instrumentation:opentelemetry-log4j-appender-2.17:OPENTELEMETRY_VERSION")
 }
 ```
 

+ 1 - 1
instrumentation/log4j/log4j-appender-2.16/library/build.gradle.kts → instrumentation/log4j/log4j-appender-2.17/library/build.gradle.kts

@@ -6,7 +6,7 @@ dependencies {
   implementation(project(":instrumentation-appender-api-internal"))
   implementation(project(":instrumentation-appender-sdk-internal"))
 
-  library("org.apache.logging.log4j:log4j-core:2.16.0")
+  library("org.apache.logging.log4j:log4j-core:2.17.0")
 
   testImplementation(project(":instrumentation-appender-sdk-internal"))
   testImplementation("io.opentelemetry:opentelemetry-sdk-logs")

+ 0 - 0
instrumentation/log4j/log4j-appender-2.16/library/src/main/java/io/opentelemetry/instrumentation/log4j/appender/v2_16/OpenTelemetryAppender.java → instrumentation/log4j/log4j-appender-2.17/library/src/main/java/io/opentelemetry/instrumentation/log4j/appender/v2_16/OpenTelemetryAppender.java


+ 0 - 0
instrumentation/log4j/log4j-appender-2.16/library/src/main/java/io/opentelemetry/instrumentation/log4j/appender/v2_16/internal/ContextDataAccessor.java → instrumentation/log4j/log4j-appender-2.17/library/src/main/java/io/opentelemetry/instrumentation/log4j/appender/v2_16/internal/ContextDataAccessor.java


+ 0 - 0
instrumentation/log4j/log4j-appender-2.16/library/src/main/java/io/opentelemetry/instrumentation/log4j/appender/v2_16/internal/LogEventMapper.java → instrumentation/log4j/log4j-appender-2.17/library/src/main/java/io/opentelemetry/instrumentation/log4j/appender/v2_16/internal/LogEventMapper.java


+ 0 - 0
instrumentation/log4j/log4j-appender-2.16/library/src/test/java/io/opentelemetry/instrumentation/log4j/appender/v2_16/OpenTelemetryAppenderConfigTest.java → instrumentation/log4j/log4j-appender-2.17/library/src/test/java/io/opentelemetry/instrumentation/log4j/appender/v2_16/OpenTelemetryAppenderConfigTest.java


+ 0 - 0
instrumentation/log4j/log4j-appender-2.16/library/src/test/java/io/opentelemetry/instrumentation/log4j/appender/v2_16/internal/LogEventMapperTest.java → instrumentation/log4j/log4j-appender-2.17/library/src/test/java/io/opentelemetry/instrumentation/log4j/appender/v2_16/internal/LogEventMapperTest.java


+ 0 - 0
instrumentation/log4j/log4j-appender-2.16/library/src/test/resources/log4j2-test.xml → instrumentation/log4j/log4j-appender-2.17/library/src/test/resources/log4j2-test.xml


+ 3 - 3
instrumentation/log4j/log4j-context-data/log4j-context-data-2.16/javaagent/build.gradle.kts → instrumentation/log4j/log4j-context-data/log4j-context-data-2.17/javaagent/build.gradle.kts

@@ -7,7 +7,7 @@ muzzle {
   pass {
     group.set("org.apache.logging.log4j")
     module.set("log4j-core")
-    versions.set("[2.16.0,)")
+    versions.set("[2.17.0,)")
     assertInverse.set(true)
   }
 }
@@ -21,9 +21,9 @@ testSets {
 }
 
 dependencies {
-  library("org.apache.logging.log4j:log4j-core:2.16.0")
+  library("org.apache.logging.log4j:log4j-core:2.17.0")
 
-  implementation(project(":instrumentation:log4j:log4j-context-data:log4j-context-data-2.16:library-autoconfigure"))
+  implementation(project(":instrumentation:log4j:log4j-context-data:log4j-context-data-2.17:library-autoconfigure"))
 
   testInstrumentation(project(":instrumentation:log4j:log4j-context-data:log4j-context-data-2.7:javaagent"))
 

+ 6 - 10
instrumentation/log4j/log4j-context-data/log4j-context-data-2.16/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/v2_16/Log4j2InstrumentationModule.java → instrumentation/log4j/log4j-context-data/log4j-context-data-2.17/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/v2_16/Log4j2InstrumentationModule.java

@@ -8,7 +8,6 @@ package io.opentelemetry.javaagent.instrumentation.log4j.v2_16;
 import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed;
 import static java.util.Collections.singletonList;
 import static net.bytebuddy.matcher.ElementMatchers.named;
-import static net.bytebuddy.matcher.ElementMatchers.not;
 
 import com.google.auto.service.AutoService;
 import io.opentelemetry.javaagent.extension.instrumentation.HelperResourceBuilder;
@@ -22,7 +21,7 @@ import net.bytebuddy.matcher.ElementMatcher;
 @AutoService(InstrumentationModule.class)
 public class Log4j2InstrumentationModule extends InstrumentationModule {
   public Log4j2InstrumentationModule() {
-    super("log4j-context-data", "log4j-context-data-2.16");
+    super("log4j-context-data", "log4j-context-data-2.17");
   }
 
   @Override
@@ -33,14 +32,11 @@ public class Log4j2InstrumentationModule extends InstrumentationModule {
 
   @Override
   public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
-    // want to cover 2.16.0+
-    // - DefaultArbiter introduced in 2.15.0
-    // - LookupMessagePatternConverter introduced in 2.15.0, removed in 2.16.0
-    return hasClassesNamed("org.apache.logging.log4j.core.config.arbiters.DefaultArbiter")
-        .and(
-            not(
-                hasClassesNamed(
-                    "org.apache.logging.log4j.core.pattern.MessagePatternConverter$LookupMessagePatternConverter")));
+    return hasClassesNamed(
+        // class added in 2.17.0 and backported to 2.12.3
+        "org.apache.logging.log4j.core.lookup.ConfigurationStrSubstitutor",
+        // class added in 2.15.0
+        "org.apache.logging.log4j.core.config.arbiters.DefaultArbiter");
   }
 
   @Override

+ 0 - 0
instrumentation/log4j/log4j-context-data/log4j-context-data-2.16/javaagent/src/test/groovy/AutoLog4j2Test.groovy → instrumentation/log4j/log4j-context-data/log4j-context-data-2.17/javaagent/src/test/groovy/AutoLog4j2Test.groovy


+ 2 - 2
instrumentation/log4j/log4j-context-data/log4j-context-data-2.16/library-autoconfigure/README.md → instrumentation/log4j/log4j-context-data/log4j-context-data-2.17/library-autoconfigure/README.md

@@ -15,7 +15,7 @@ stable [release](https://search.maven.org/search?q=g:io.opentelemetry.instrument
 <dependencies>
   <dependency>
     <groupId>io.opentelemetry.instrumentation</groupId>
-    <artifactId>opentelemetry-log4j-context-data-2.16-autoconfigure</artifactId>
+    <artifactId>opentelemetry-log4j-context-data-2.17-autoconfigure</artifactId>
     <version>OPENTELEMETRY_VERSION</version>
   </dependency>
 </dependencies>
@@ -25,7 +25,7 @@ stable [release](https://search.maven.org/search?q=g:io.opentelemetry.instrument
 
 ```kotlin
 dependencies {
-  runtimeOnly("io.opentelemetry.instrumentation:opentelemetry-log4j-context-data-2.16-autoconfigure:OPENTELEMETRY_VERSION")
+  runtimeOnly("io.opentelemetry.instrumentation:opentelemetry-log4j-context-data-2.17-autoconfigure:OPENTELEMETRY_VERSION")
 }
 ```
 

+ 1 - 1
instrumentation/log4j/log4j-context-data/log4j-context-data-2.16/library-autoconfigure/build.gradle.kts → instrumentation/log4j/log4j-context-data/log4j-context-data-2.17/library-autoconfigure/build.gradle.kts

@@ -5,7 +5,7 @@ plugins {
 base.archivesName.set("${base.archivesName.get()}-autoconfigure")
 
 dependencies {
-  library("org.apache.logging.log4j:log4j-core:2.16.0")
+  library("org.apache.logging.log4j:log4j-core:2.17.0")
 
   testImplementation(project(":instrumentation:log4j:log4j-context-data:log4j-context-data-2-common:testing"))
 }

+ 0 - 0
instrumentation/log4j/log4j-context-data/log4j-context-data-2.16/library-autoconfigure/src/main/java/io/opentelemetry/instrumentation/log4j/v2_16/OpenTelemetryContextDataProvider.java → instrumentation/log4j/log4j-context-data/log4j-context-data-2.17/library-autoconfigure/src/main/java/io/opentelemetry/instrumentation/log4j/v2_16/OpenTelemetryContextDataProvider.java


+ 0 - 0
instrumentation/log4j/log4j-context-data/log4j-context-data-2.16/library-autoconfigure/src/main/resources/META-INF/services/org.apache.logging.log4j.core.util.ContextDataProvider → instrumentation/log4j/log4j-context-data/log4j-context-data-2.17/library-autoconfigure/src/main/resources/META-INF/services/org.apache.logging.log4j.core.util.ContextDataProvider


+ 0 - 0
instrumentation/log4j/log4j-context-data/log4j-context-data-2.16/library-autoconfigure/src/test/groovy/LibraryLog4j2Test.groovy → instrumentation/log4j/log4j-context-data/log4j-context-data-2.17/library-autoconfigure/src/test/groovy/LibraryLog4j2Test.groovy


+ 3 - 3
instrumentation/log4j/log4j-context-data/log4j-context-data-2.7/javaagent/build.gradle.kts

@@ -6,7 +6,7 @@ muzzle {
   pass {
     group.set("org.apache.logging.log4j")
     module.set("log4j-core")
-    versions.set("[2.7,2.16.0)")
+    versions.set("[2.7,2.17.0)")
     assertInverse.set(true)
   }
 }
@@ -14,9 +14,9 @@ muzzle {
 dependencies {
   library("org.apache.logging.log4j:log4j-core:2.7")
 
-  testInstrumentation(project(":instrumentation:log4j:log4j-context-data:log4j-context-data-2.16:javaagent"))
+  testInstrumentation(project(":instrumentation:log4j:log4j-context-data:log4j-context-data-2.17:javaagent"))
 
   testImplementation(project(":instrumentation:log4j:log4j-context-data:log4j-context-data-2-common:testing"))
 
-  latestDepTestLibrary("org.apache.logging.log4j:log4j-core:2.15.+") // see log4j-context-data-2.16
+  latestDepTestLibrary("org.apache.logging.log4j:log4j-core:2.16.+") // see log4j-context-data-2.17
 }

+ 10 - 9
instrumentation/log4j/log4j-context-data/log4j-context-data-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/v2_7/Log4j27InstrumentationModule.java

@@ -23,16 +23,17 @@ public class Log4j27InstrumentationModule extends InstrumentationModule {
 
   @Override
   public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
-    // want to cover 2.7 through (and including) 2.15.0 (but not including 2.16.0+)
-    // - ContextDataInjectorFactory introduced in 2.7
-    // - DefaultArbiter introduced in 2.15.0
-    // - LookupMessagePatternConverter introduced in 2.15.0, removed in 2.16.0
-    return hasClassesNamed("org.apache.logging.log4j.core.impl.ContextDataInjectorFactory")
+    // want to cover 2.7 up to (but not including) 2.17.0
+    return hasClassesNamed(
+            // class added in 2.7
+            "org.apache.logging.log4j.core.impl.ContextDataInjectorFactory")
         .and(
-            not(hasClassesNamed("org.apache.logging.log4j.core.config.arbiters.DefaultArbiter"))
-                .or(
-                    hasClassesNamed(
-                        "org.apache.logging.log4j.core.pattern.MessagePatternConverter$LookupMessagePatternConverter")));
+            not(
+                hasClassesNamed(
+                    // class added in 2.17.0 and backported to 2.12.3
+                    "org.apache.logging.log4j.core.lookup.ConfigurationStrSubstitutor",
+                    // class added in 2.15.0
+                    "org.apache.logging.log4j.core.config.arbiters.DefaultArbiter")));
   }
 
   @Override

+ 4 - 4
settings.gradle.kts

@@ -299,11 +299,11 @@ include(":instrumentation:liberty:liberty-dispatcher:javaagent")
 include(":instrumentation:log4j:log4j-appender-1.2:javaagent")
 include(":instrumentation:log4j:log4j-mdc-1.2:javaagent")
 include(":instrumentation:log4j:log4j-context-data:log4j-context-data-2.7:javaagent")
-include(":instrumentation:log4j:log4j-context-data:log4j-context-data-2.16:javaagent")
-include(":instrumentation:log4j:log4j-context-data:log4j-context-data-2.16:library-autoconfigure")
+include(":instrumentation:log4j:log4j-context-data:log4j-context-data-2.17:javaagent")
+include(":instrumentation:log4j:log4j-context-data:log4j-context-data-2.17:library-autoconfigure")
 include(":instrumentation:log4j:log4j-context-data:log4j-context-data-2-common:testing")
-include(":instrumentation:log4j:log4j-appender-2.16:javaagent")
-include(":instrumentation:log4j:log4j-appender-2.16:library")
+include(":instrumentation:log4j:log4j-appender-2.17:javaagent")
+include(":instrumentation:log4j:log4j-appender-2.17:library")
 include(":instrumentation:logback:logback-appender-1.0:javaagent")
 include(":instrumentation:logback:logback-appender-1.0:library")
 include(":instrumentation:logback:logback-mdc-1.0:javaagent")