Skip to content

Commit

Permalink
Start Datadog appender when doing agentless log submission for Log4j2 (
Browse files Browse the repository at this point in the history
  • Loading branch information
nikita-tkachenko-datadog committed Jun 11, 2024
1 parent 5294fac commit 54461ee
Showing 1 changed file with 13 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,11 @@
import datadog.trace.agent.tooling.Instrumenter;
import datadog.trace.agent.tooling.InstrumenterModule;
import datadog.trace.api.Config;
import java.util.Map;
import java.util.Set;
import net.bytebuddy.asm.Advice;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.core.Appender;
import org.apache.logging.log4j.core.config.LoggerConfig;

@AutoService(InstrumenterModule.class)
Expand Down Expand Up @@ -44,7 +46,18 @@ public void methodAdvice(MethodTransformer transformer) {
public static class LoggerConfigConstructorAdvice {
@Advice.OnMethodExit(suppress = Throwable.class)
public static void onExit(@Advice.This LoggerConfig loggerConfig) {
Map<String, Appender> appenders = loggerConfig.getAppenders();
if (appenders != null) {
for (Appender appender : appenders.values()) {
if (appender instanceof DatadogAppender) {
return;
}
}
}

DatadogAppender appender = new DatadogAppender("datadog", null);
appender.start();

Config config = Config.get();
Level level = Level.valueOf(config.getAgentlessLogSubmissionLevel());
loggerConfig.addAppender(appender, level, null);
Expand Down

0 comments on commit 54461ee

Please sign in to comment.