diff --git a/CHANGES.md b/CHANGES.md
index 91c2f77b69b72a6e66318b49d8e54d70ec03d83f..589d5a20131f30e808b5e236c9de68f44b25f021 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -9,8 +9,8 @@ Release Notes.
#### Java Agent
* Remove invalid mysql configuration in agent.config.
-* Add net.bytebuddy.agent.builder.AgentBuilder.RedefinitionStrategy.Listener to show detail message when redefine errors occur
-
+* Add net.bytebuddy.agent.builder.AgentBuilder.RedefinitionStrategy.Listener to show detail message when redefine errors occur.
+* Fix ClassCastException of log4j gRPC reporter.
#### OAP-Backend
* Allow user-defined `JAVA_OPTS` in the startup script.
diff --git a/apm-sniffer/apm-toolkit-activation/apm-toolkit-log4j-1.x-activation/pom.xml b/apm-sniffer/apm-toolkit-activation/apm-toolkit-log4j-1.x-activation/pom.xml
index 3028977429d9b90b248091ea188b8f2564d833ec..e5f2e138753731ca6892a249c2d00c72b94fc6d6 100644
--- a/apm-sniffer/apm-toolkit-activation/apm-toolkit-log4j-1.x-activation/pom.xml
+++ b/apm-sniffer/apm-toolkit-activation/apm-toolkit-log4j-1.x-activation/pom.xml
@@ -36,7 +36,7 @@
log4j
log4j
${log4j.version}
- test
+ provided
org.apache.skywalking
diff --git a/apm-sniffer/apm-toolkit-activation/apm-toolkit-log4j-1.x-activation/src/main/java/org/apache/skywalking/apm/toolkit/activation/log/log4j/v1/x/log/GRPCLogAppenderInterceptor.java b/apm-sniffer/apm-toolkit-activation/apm-toolkit-log4j-1.x-activation/src/main/java/org/apache/skywalking/apm/toolkit/activation/log/log4j/v1/x/log/GRPCLogAppenderInterceptor.java
index c78198467c402e5a0b2f1df2a6268b67db52fc92..98c555ce0c5ff0449d4ce8879d7a1a86ab83d990 100644
--- a/apm-sniffer/apm-toolkit-activation/apm-toolkit-log4j-1.x-activation/src/main/java/org/apache/skywalking/apm/toolkit/activation/log/log4j/v1/x/log/GRPCLogAppenderInterceptor.java
+++ b/apm-sniffer/apm-toolkit-activation/apm-toolkit-log4j-1.x-activation/src/main/java/org/apache/skywalking/apm/toolkit/activation/log/log4j/v1/x/log/GRPCLogAppenderInterceptor.java
@@ -35,7 +35,7 @@ import org.apache.skywalking.apm.network.logging.v3.LogDataBody;
import org.apache.skywalking.apm.network.logging.v3.LogTags;
import org.apache.skywalking.apm.network.logging.v3.TextLog;
import org.apache.skywalking.apm.network.logging.v3.TraceContext;
-import org.slf4j.event.LoggingEvent;
+import org.apache.log4j.spi.LoggingEvent;
public class GRPCLogAppenderInterceptor implements InstanceMethodsAroundInterceptor {
@@ -103,6 +103,8 @@ public class GRPCLogAppenderInterceptor implements InstanceMethodsAroundIntercep
}
private String transformLogText(final LoggingEvent event) {
- return event.getMessage() + "\n" + ThrowableTransformer.INSTANCE.convert2String(event.getThrowable(), 2048);
+ final String throwableString = Objects.isNull(event.getThrowableInformation()) ? "" :
+ ThrowableTransformer.INSTANCE.convert2String(event.getThrowableInformation().getThrowable(), 2048);
+ return event.getMessage() + "\n" + throwableString;
}
}