diff --git a/apm-agent-core/src/main/java/co/elastic/apm/agent/bci/classloading/IndyPluginClassLoader.java b/apm-agent-core/src/main/java/co/elastic/apm/agent/bci/classloading/IndyPluginClassLoader.java index 271bb3d07c..27494243ea 100644 --- a/apm-agent-core/src/main/java/co/elastic/apm/agent/bci/classloading/IndyPluginClassLoader.java +++ b/apm-agent-core/src/main/java/co/elastic/apm/agent/bci/classloading/IndyPluginClassLoader.java @@ -68,7 +68,7 @@ agentClassLoader, startsWith("co.elastic.apm.agent").or(startsWith("net.bytebudd // The list of packages not to load should correspond with matching dependency exclusions from the apm-agent-core in apm-agent-plugins/pom.xml // As we're using a custom logging facade, plugins don't need to refer to the agent-bundled log4j2 or slf4j. return new DiscriminatingMultiParentClassLoader( - agentClassLoader, not(startsWith("org.apache.logging.log4j").and(not(startsWith("org.slf4j")))), + agentClassLoader, not(startsWith("org.apache.logging.log4j")).and(not(startsWith("org.slf4j"))).and(not(startsWith("co.elastic.logging.log4j2"))), targetClassLoader, ElementMatchers.any()); } } diff --git a/apm-agent-plugins/apm-ecs-logging-plugin/src/main/java/co/elastic/apm/agent/ecs_logging/Log4j2ServiceNameInstrumentation.java b/apm-agent-plugins/apm-ecs-logging-plugin/src/main/java/co/elastic/apm/agent/ecs_logging/Log4j2ServiceNameInstrumentation.java index eef1f2e3b4..ac11702d62 100644 --- a/apm-agent-plugins/apm-ecs-logging-plugin/src/main/java/co/elastic/apm/agent/ecs_logging/Log4j2ServiceNameInstrumentation.java +++ b/apm-agent-plugins/apm-ecs-logging-plugin/src/main/java/co/elastic/apm/agent/ecs_logging/Log4j2ServiceNameInstrumentation.java @@ -19,6 +19,7 @@ package co.elastic.apm.agent.ecs_logging; import co.elastic.apm.agent.bci.TracerAwareInstrumentation; +import co.elastic.apm.agent.bci.bytebuddy.CustomElementMatchers; import co.elastic.apm.agent.configuration.CoreConfiguration; import co.elastic.apm.agent.configuration.ServiceInfo; import co.elastic.apm.agent.impl.ElasticApmTracer; @@ -33,9 +34,15 @@ import java.util.Collection; import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.not; public class Log4j2ServiceNameInstrumentation extends TracerAwareInstrumentation { + @Override + public ElementMatcher.Junction getClassLoaderMatcher() { + return not(CustomElementMatchers.isAgentClassLoader()); + } + @Override public ElementMatcher getTypeMatcher() { return named("co.elastic.logging.log4j2.EcsLayout$Builder");