Skip to content

Commit 5a1d6e8

Browse files
committed
log4j-appender-2.17
1 parent 850de26 commit 5a1d6e8

File tree

2 files changed

+18
-11
lines changed

2 files changed

+18
-11
lines changed

instrumentation/log4j/log4j-appender-2.17/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/appender/v2_17/Log4jAppenderInstrumentation.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -69,25 +69,25 @@ public void transform(TypeTransformer transformer) {
6969
public static class LogAdvice {
7070

7171
@Advice.OnMethodEnter(suppress = Throwable.class)
72-
public static void methodEnter(
72+
public static CallDepth methodEnter(
7373
@Advice.This Logger logger,
7474
@Advice.Argument(0) Level level,
7575
@Advice.Argument(1) Marker marker,
7676
@Advice.Argument(2) String loggerClassName,
7777
@Advice.Argument(3) StackTraceElement location,
7878
@Advice.Argument(4) Message message,
79-
@Advice.Argument(5) Throwable t,
80-
@Advice.Local("otelCallDepth") CallDepth callDepth) {
79+
@Advice.Argument(5) Throwable t) {
8180
// need to track call depth across all loggers in order to avoid double capture when one
8281
// logging framework delegates to another
83-
callDepth = CallDepth.forClass(LoggerProvider.class);
82+
CallDepth callDepth = CallDepth.forClass(LoggerProvider.class);
8483
if (callDepth.getAndIncrement() == 0) {
8584
Log4jHelper.capture(logger, loggerClassName, location, level, marker, message, t);
8685
}
86+
return callDepth;
8787
}
8888

8989
@Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class)
90-
public static void methodExit(@Advice.Local("otelCallDepth") CallDepth callDepth) {
90+
public static void methodExit(@Advice.Enter CallDepth callDepth) {
9191
callDepth.decrementAndGet();
9292
}
9393
}
@@ -96,24 +96,24 @@ public static void methodExit(@Advice.Local("otelCallDepth") CallDepth callDepth
9696
public static class LogMessageAdvice {
9797

9898
@Advice.OnMethodEnter(suppress = Throwable.class)
99-
public static void methodEnter(
99+
public static CallDepth methodEnter(
100100
@Advice.This Logger logger,
101101
@Advice.Argument(0) String loggerClassName,
102102
@Advice.Argument(1) Level level,
103103
@Advice.Argument(2) Marker marker,
104104
@Advice.Argument(3) Message message,
105-
@Advice.Argument(4) Throwable t,
106-
@Advice.Local("otelCallDepth") CallDepth callDepth) {
105+
@Advice.Argument(4) Throwable t) {
107106
// need to track call depth across all loggers in order to avoid double capture when one
108107
// logging framework delegates to another
109-
callDepth = CallDepth.forClass(LoggerProvider.class);
108+
CallDepth callDepth = CallDepth.forClass(LoggerProvider.class);
110109
if (callDepth.getAndIncrement() == 0) {
111110
Log4jHelper.capture(logger, loggerClassName, null, level, marker, message, t);
112111
}
112+
return callDepth;
113113
}
114114

115115
@Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class)
116-
public static void methodExit(@Advice.Local("otelCallDepth") CallDepth callDepth) {
116+
public static void methodExit(@Advice.Enter CallDepth callDepth) {
117117
callDepth.decrementAndGet();
118118
}
119119
}

instrumentation/log4j/log4j-appender-2.17/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/appender/v2_17/Log4jAppenderInstrumentationModule.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,12 @@
1010
import com.google.auto.service.AutoService;
1111
import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule;
1212
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
13+
import io.opentelemetry.javaagent.extension.instrumentation.internal.ExperimentalInstrumentationModule;
1314
import java.util.List;
1415

1516
@AutoService(InstrumentationModule.class)
16-
public class Log4jAppenderInstrumentationModule extends InstrumentationModule {
17+
public class Log4jAppenderInstrumentationModule extends InstrumentationModule
18+
implements ExperimentalInstrumentationModule {
1719

1820
public Log4jAppenderInstrumentationModule() {
1921
super("log4j-appender", "log4j-appender-2.17");
@@ -23,4 +25,9 @@ public Log4jAppenderInstrumentationModule() {
2325
public List<TypeInstrumentation> typeInstrumentations() {
2426
return singletonList(new Log4jAppenderInstrumentation());
2527
}
28+
29+
@Override
30+
public boolean isIndyReady() {
31+
return true;
32+
}
2633
}

0 commit comments

Comments
 (0)