From c682cdbb7b17657ced53b2dca7af1de5b636f105 Mon Sep 17 00:00:00 2001 From: Venkata Naga Sai Srikanth Gollapudi <42247688+GollapudiSrikanth@users.noreply.github.com> Date: Wed, 25 Mar 2026 23:17:38 -0500 Subject: [PATCH 1/3] Add support for structured stacktrace hash field Signed-off-by: Venkata Naga Sai Srikanth Gollapudi <42247688+GollapudiSrikanth@users.noreply.github.com> Signed-off-by: Venkata Naga Sai Srikanth Gollapudi <42247688+GollapudiSrikanth@users.noreply.github.com> --- .../logging/StandardStackTracePrinter.java | 29 +++++ ...ticCommonSchemaStructuredLogFormatter.java | 14 ++- ...tendedLogFormatStructuredLogFormatter.java | 15 ++- .../LogstashStructuredLogFormatter.java | 14 ++- .../logging/log4j2/StructuredLogLayout.java | 18 ++- ...ticCommonSchemaStructuredLogFormatter.java | 24 +++- ...tendedLogFormatStructuredLogFormatter.java | 24 +++- .../LogstashStructuredLogFormatter.java | 22 +++- .../logging/logback/StructuredLogEncoder.java | 19 ++- .../StackTraceHashFieldConfiguration.java | 54 +++++++++ .../structured/StackTraceHashGenerate.java | 40 ++++++ .../StructuredLogFormatterFactory.java | 20 +++ .../StructuredLoggingJsonProperties.java | 62 +++++++++- ...itional-spring-configuration-metadata.json | 19 ++- ...mmonSchemaStructuredLogFormatterTests.java | 4 +- ...dLogFormatStructuredLogFormatterTests.java | 4 +- .../LogstashStructuredLogFormatterTests.java | 33 ++++- ...mmonSchemaStructuredLogFormatterTests.java | 4 +- ...dLogFormatStructuredLogFormatterTests.java | 4 +- .../LogstashStructuredLogFormatterTests.java | 35 +++++- .../logback/StructuredLogEncoderTests.java | 82 +++++++++++++ .../StructuredLoggingJsonPropertiesTests.java | 114 +++++++++++++++--- .../TestStackTraceHashFieldConfiguration.java | 34 ++++++ .../reference/pages/features/logging.adoc | 70 +++++++++-- 24 files changed, 679 insertions(+), 79 deletions(-) create mode 100644 core/spring-boot/src/main/java/org/springframework/boot/logging/structured/StackTraceHashFieldConfiguration.java create mode 100644 core/spring-boot/src/main/java/org/springframework/boot/logging/structured/StackTraceHashGenerate.java create mode 100644 core/spring-boot/src/test/java/org/springframework/boot/logging/structured/TestStackTraceHashFieldConfiguration.java diff --git a/core/spring-boot/src/main/java/org/springframework/boot/logging/StandardStackTracePrinter.java b/core/spring-boot/src/main/java/org/springframework/boot/logging/StandardStackTracePrinter.java index a10c36d80b60..ef0694418959 100644 --- a/core/spring-boot/src/main/java/org/springframework/boot/logging/StandardStackTracePrinter.java +++ b/core/spring-boot/src/main/java/org/springframework/boot/logging/StandardStackTracePrinter.java @@ -278,6 +278,35 @@ public StandardStackTracePrinter withHashes(@Nullable ToIntFunction frameHasher) { + if (throwable == null) { + return null; + } + StackTrace stackTrace = new StackTrace(throwable); + int hash = stackTrace.hash(new HashSet<>(), frameHasher); + return String.format("%08x", hash); + } + private StandardStackTracePrinter withOption(Option option) { EnumSet