diff --git a/logback-classic/src/main/java/ch/qos/logback/classic/encoder/JsonEncoder.java b/logback-classic/src/main/java/ch/qos/logback/classic/encoder/JsonEncoder.java index e3925a1013..c6a0ed73d9 100644 --- a/logback-classic/src/main/java/ch/qos/logback/classic/encoder/JsonEncoder.java +++ b/logback-classic/src/main/java/ch/qos/logback/classic/encoder/JsonEncoder.java @@ -87,6 +87,7 @@ public class JsonEncoder extends EncoderBase { private static final String LINE_NUMBER_ATTR_NAME = "lineNumber"; public static final String STEP_ARRAY_NAME_ATTRIBUTE = "stepArray"; + public static final String STACKTRACE_NAME_ATTRIBUTE = "stackTrace"; private static final char OPEN_OBJ = '{'; private static final char CLOSE_OBJ = '}'; @@ -122,7 +123,7 @@ public class JsonEncoder extends EncoderBase { private boolean withMessage = true; private boolean withArguments = true; private boolean withThrowable = true; - private boolean withOriginalStackTrace = false; + private boolean withPlainStackTrace = false; private boolean withFormattedMessage = false; @@ -268,8 +269,8 @@ private void appendThrowableProxy(StringBuilder sb, String attributeName, IThrow } sb.append(VALUE_SEPARATOR); - if (withOriginalStackTrace) { - appenderMember(sb, "stackTrace", getOriginalStackTrace(itp)); + if (withPlainStackTrace) { + appenderMember(sb, STACKTRACE_NAME_ATTRIBUTE, getOriginalStackTrace(itp)); } else { appendSTEPArray(sb, itp.getStackTraceElementProxyArray(), itp.getCommonFrames()); } @@ -279,7 +280,7 @@ private void appendThrowableProxy(StringBuilder sb, String attributeName, IThrow appenderMemberWithIntValue(sb, COMMON_FRAMES_COUNT_ATTR_NAME, itp.getCommonFrames()); } - if (!withOriginalStackTrace) { + if (!withPlainStackTrace) { IThrowableProxy cause = itp.getCause(); if (cause != null) { sb.append(VALUE_SEPARATOR); @@ -323,7 +324,7 @@ private static void getOriginalStackTrace(IThrowableProxy throwable, StringBuild } sb.append(throwable.getClassName()).append(": ").append(throwable.getMessage()).append(NEWLINE); for (StackTraceElementProxy step : throwable.getStackTraceElementProxyArray()) { - sb.append(TAB).append(step).append(NEWLINE); + sb.append(TAB).append(step.getSTEAsString()).append(NEWLINE); } getOriginalStackTrace(throwable.getCause(), sb, depth + 1); } @@ -543,11 +544,11 @@ public void setWithThrowable(boolean withThrowable) { } /** - * @param withOriginalStackTrace + * @param withPlainStackTrace * @since 1.5.7 */ - public void setWithOriginalStackTrace(boolean withOriginalStackTrace) { - this.withOriginalStackTrace = withOriginalStackTrace; + public void setWithPlainStackTrace(boolean withPlainStackTrace) { + this.withPlainStackTrace = withPlainStackTrace; } public void setWithFormattedMessage(boolean withFormattedMessage) { diff --git a/logback-classic/src/test/java/ch/qos/logback/classic/encoder/JsonEncoderTest.java b/logback-classic/src/test/java/ch/qos/logback/classic/encoder/JsonEncoderTest.java index 92a7e7e462..c9fe07043f 100644 --- a/logback-classic/src/test/java/ch/qos/logback/classic/encoder/JsonEncoderTest.java +++ b/logback-classic/src/test/java/ch/qos/logback/classic/encoder/JsonEncoderTest.java @@ -258,11 +258,11 @@ void withThrowable() throws JsonProcessingException { } @Test - void withOriginalStackTrace() throws IOException { + void withPlainStackTrace() throws IOException { Throwable t = new RuntimeException("test", new IllegalStateException("test cause")); LoggingEvent event = new LoggingEvent("in withThrowable test", logger, Level.WARN, "hello kvp", t, null); - jsonEncoder.setWithOriginalStackTrace(true); + jsonEncoder.setWithPlainStackTrace(true); byte[] resultBytes = jsonEncoder.encode(event); String resultString = new String(resultBytes, StandardCharsets.UTF_8).trim();