Skip to content

Commit b4f51c5

Browse files
Start Datadog appender when doing agentless log submission for Log4j2
1 parent 64c74a7 commit b4f51c5

1 file changed

Lines changed: 13 additions & 0 deletions

File tree

dd-java-agent/instrumentation/log4j2/logs-intake/src/main/java/datadog/trace/instrumentation/log4j2/LoggerConfigInstrumentation.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,11 @@
66
import datadog.trace.agent.tooling.Instrumenter;
77
import datadog.trace.agent.tooling.InstrumenterModule;
88
import datadog.trace.api.Config;
9+
import java.util.Map;
910
import java.util.Set;
1011
import net.bytebuddy.asm.Advice;
1112
import org.apache.logging.log4j.Level;
13+
import org.apache.logging.log4j.core.Appender;
1214
import org.apache.logging.log4j.core.config.LoggerConfig;
1315

1416
@AutoService(InstrumenterModule.class)
@@ -44,7 +46,18 @@ public void methodAdvice(MethodTransformer transformer) {
4446
public static class LoggerConfigConstructorAdvice {
4547
@Advice.OnMethodExit(suppress = Throwable.class)
4648
public static void onExit(@Advice.This LoggerConfig loggerConfig) {
49+
Map<String, Appender> appenders = loggerConfig.getAppenders();
50+
if (appenders != null) {
51+
for (Appender appender : appenders.values()) {
52+
if (appender instanceof DatadogAppender) {
53+
return;
54+
}
55+
}
56+
}
57+
4758
DatadogAppender appender = new DatadogAppender("datadog", null);
59+
appender.start();
60+
4861
Config config = Config.get();
4962
Level level = Level.valueOf(config.getAgentlessLogSubmissionLevel());
5063
loggerConfig.addAppender(appender, level, null);

0 commit comments

Comments
 (0)