Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 50e5421

Browse files
Roll back to Log4j 2.24
This reverts: - 7a5e77f - 1590e4d - 8cf0d17 See gh-46334, gh-46372
1 parent 1590e4d commit 50e5421

18 files changed

+78
-108
lines changed

‎config/checkstyle/checkstyle-suppressions.xml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,4 @@
7575
<suppress files="ConditionMessage\.java" checks="NoWhitespaceBefore" message="'...' is preceded with whitespace"/>
7676
<suppress files="EntityManagerFactoryBuilder\.java" checks="NoWhitespaceBefore" message="'...' is preceded with whitespace"/>
7777
<suppress files="DockerApi\.java" checks="NoWhitespaceBefore" message="'...' is preceded with whitespace"/>
78-
<!-- https://github.com/apache/logging-log4j2/issues/2769#issuecomment-3049020222 -->
79-
<suppress files="SpringProfileArbiter\.java" checks="SpringMethodVisibility"/>
80-
<suppress files="StructuredLogLayout\.java" checks="SpringMethodVisibility"/>
8178
</suppressions>

‎core/spring-boot/build.gradle

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -87,12 +87,6 @@ tasks.named("checkFormatMain") {
8787
source(fileTree("src/main/javaTemplates"))
8888
}
8989

90-
tasks.named("compileJava") {
91-
// Provide the project coordinates to the `GraalVmProcessor`:
92-
options.compilerArgs << '-Alog4j.graalvm.groupId=org.springframework.boot'
93-
options.compilerArgs << '-Alog4j.graalvm.artifactId=spring-boot-log4j'
94-
}
95-
9690
plugins.withType(EclipsePlugin) {
9791
eclipse {
9892
synchronizationTasks syncJavaTemplates

‎core/spring-boot/src/main/java/org/springframework/boot/logging/log4j2/ElasticCommonSchemaStructuredLogFormatter.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@
1919
import java.util.Objects;
2020
import java.util.Set;
2121
import java.util.TreeSet;
22-
import java.util.function.Function;
2322

2423
import org.apache.logging.log4j.Level;
2524
import org.apache.logging.log4j.Marker;
2625
import org.apache.logging.log4j.core.LogEvent;
26+
import org.apache.logging.log4j.core.impl.ThrowableProxy;
2727
import org.apache.logging.log4j.core.time.Instant;
2828
import org.apache.logging.log4j.util.ReadOnlyStringMap;
2929
import org.jspecify.annotations.Nullable;
@@ -71,10 +71,10 @@ private static void jsonMembers(Environment environment, @Nullable StackTracePri
7171
members.add("message", LogEvent::getMessage).as(StructuredMessage::get);
7272
members.from(LogEvent::getContextData)
7373
.usingPairs(contextPairs.nested(ElasticCommonSchemaStructuredLogFormatter::addContextDataPairs));
74-
members.from(LogEvent::getThrown).whenNotNull().usingMembers((thrownProxyMembers) -> {
74+
members.from(LogEvent::getThrownProxy).whenNotNull().usingMembers((thrownProxyMembers) -> {
7575
thrownProxyMembers.add("error").usingMembers((error) -> {
76-
error.add("type", Function.identity()).whenNotNull().as(ObjectUtils::nullSafeClassName);
77-
error.add("message", Throwable::getMessage);
76+
error.add("type", ThrowableProxy::getThrowable).whenNotNull().as(ObjectUtils::nullSafeClassName);
77+
error.add("message", ThrowableProxy::getMessage);
7878
error.add("stack_trace", extractor::stackTrace);
7979
});
8080
});

‎core/spring-boot/src/main/java/org/springframework/boot/logging/log4j2/ExtendedWhitespaceThrowablePatternConverter.java

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import org.apache.logging.log4j.core.config.plugins.Plugin;
2222
import org.apache.logging.log4j.core.pattern.ConverterKeys;
2323
import org.apache.logging.log4j.core.pattern.ExtendedThrowablePatternConverter;
24-
import org.apache.logging.log4j.core.pattern.LogEventPatternConverter;
2524
import org.apache.logging.log4j.core.pattern.PatternConverter;
2625
import org.apache.logging.log4j.core.pattern.ThrowablePatternConverter;
2726
import org.jspecify.annotations.Nullable;
@@ -36,33 +35,24 @@
3635
*/
3736
@Plugin(name = "ExtendedWhitespaceThrowablePatternConverter", category = PatternConverter.CATEGORY)
3837
@ConverterKeys({ "xwEx", "xwThrowable", "xwException" })
39-
public final class ExtendedWhitespaceThrowablePatternConverter extends LogEventPatternConverter {
38+
public final class ExtendedWhitespaceThrowablePatternConverter extends ThrowablePatternConverter {
4039

4140
private final ExtendedThrowablePatternConverter delegate;
4241

43-
private final String separator;
44-
45-
@SuppressWarnings("deprecation") // https://github.com/apache/logging-log4j2/issues/3809
46-
private ExtendedWhitespaceThrowablePatternConverter(Configuration configuration, @Nullable String[] options) {
47-
super("WhitespaceExtendedThrowable", "throwable");
42+
private ExtendedWhitespaceThrowablePatternConverter(Configuration configuration, String @Nullable [] options) {
43+
super("WhitespaceExtendedThrowable", "throwable", options, configuration);
4844
this.delegate = ExtendedThrowablePatternConverter.newInstance(configuration, options);
49-
this.separator = this.delegate.getOptions().getSeparator();
5045
}
5146

5247
@Override
5348
public void format(LogEvent event, StringBuilder buffer) {
5449
if (event.getThrown() != null) {
55-
buffer.append(this.separator);
50+
buffer.append(this.options.getSeparator());
5651
this.delegate.format(event, buffer);
57-
buffer.append(this.separator);
52+
buffer.append(this.options.getSeparator());
5853
}
5954
}
6055

61-
@Override
62-
public boolean handlesThrowable() {
63-
return true;
64-
}
65-
6656
/**
6757
* Creates a new instance of the class. Required by Log4J2.
6858
* @param configuration current configuration
@@ -71,7 +61,7 @@ public boolean handlesThrowable() {
7161
* @return a new {@code WhitespaceThrowablePatternConverter}
7262
*/
7363
public static ExtendedWhitespaceThrowablePatternConverter newInstance(Configuration configuration,
74-
@Nullable String[] options) {
64+
String@Nullable [] options) {
7565
return new ExtendedWhitespaceThrowablePatternConverter(configuration, options);
7666
}
7767

‎core/spring-boot/src/main/java/org/springframework/boot/logging/log4j2/Extractor.java

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,13 @@
1616

1717
package org.springframework.boot.logging.log4j2;
1818

19-
import java.io.PrintWriter;
20-
import java.io.StringWriter;
21-
2219
import org.apache.logging.log4j.core.LogEvent;
20+
import org.apache.logging.log4j.core.impl.ThrowableProxy;
2321
import org.jspecify.annotations.Nullable;
2422
import org.slf4j.event.LoggingEvent;
2523

2624
import org.springframework.boot.logging.StackTracePrinter;
25+
import org.springframework.util.Assert;
2726

2827
/**
2928
* Functions to extract items from {@link LoggingEvent}.
@@ -43,23 +42,19 @@ String messageAndStackTrace(LogEvent event) {
4342
}
4443

4544
@Nullable String stackTrace(LogEvent event) {
46-
return stackTrace(event.getThrown());
45+
return stackTrace(event.getThrownProxy());
4746
}
4847

49-
@Nullable String stackTrace(@Nullable Throwablethrowable) {
50-
if (throwable == null) {
48+
@Nullable String stackTrace(@Nullable ThrowableProxythrowableProxy) {
49+
if (throwableProxy == null) {
5150
return null;
5251
}
5352
if (this.stackTracePrinter != null) {
53+
Throwable throwable = throwableProxy.getThrowable();
54+
Assert.state(throwable != null, "Proxy must return Throwable in order to print exception");
5455
return this.stackTracePrinter.printStackTraceToString(throwable);
5556
}
56-
return printStackTrace(throwable);
57-
}
58-
59-
private static String printStackTrace(Throwable throwable) {
60-
StringWriter stringWriter = new StringWriter();
61-
throwable.printStackTrace(new PrintWriter(stringWriter));
62-
return stringWriter.toString();
57+
return throwableProxy.getExtendedStackTraceAsString();
6358
}
6459

6560
}

‎core/spring-boot/src/main/java/org/springframework/boot/logging/log4j2/GraylogExtendedLogFormatStructuredLogFormatter.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,8 @@ private static void jsonMembers(Environment environment, @Nullable StackTracePri
9898
.usingPairs(contextPairs.flat(additionalFieldJoiner(),
9999
GraylogExtendedLogFormatStructuredLogFormatter::addContextDataPairs));
100100
members.add()
101-
.whenNotNull(LogEvent::getThrown)
102-
.usingMembers((thrownMembers) -> throwableMembers(thrownMembers, extractor));
101+
.whenNotNull(LogEvent::getThrownProxy)
102+
.usingMembers((thrownProxyMembers) -> throwableMembers(thrownProxyMembers, extractor));
103103
}
104104

105105
private static String getMessageText(Message message) {
@@ -131,9 +131,11 @@ private static int convertLevel(LogEvent event) {
131131

132132
private static void throwableMembers(Members<LogEvent> members, Extractor extractor) {
133133
members.add("full_message", extractor::messageAndStackTrace);
134-
members.add("_error_type", LogEvent::getThrown).whenNotNull().as(ObjectUtils::nullSafeClassName);
134+
members.add("_error_type", (event) -> event.getThrownProxy().getThrowable())
135+
.whenNotNull()
136+
.as(ObjectUtils::nullSafeClassName);
135137
members.add("_error_stack_trace", extractor::stackTrace);
136-
members.add("_error_message", (event) -> event.getThrown().getMessage());
138+
members.add("_error_message", (event) -> event.getThrownProxy().getMessage());
137139
}
138140

139141
private static void addContextDataPairs(ContextPairs.Pairs<ReadOnlyStringMap> contextPairs) {

‎core/spring-boot/src/main/java/org/springframework/boot/logging/log4j2/LogstashStructuredLogFormatter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ private static void jsonMembers(@Nullable StackTracePrinter stackTracePrinter, C
6868
.whenNotNull()
6969
.as(LogstashStructuredLogFormatter::getMarkers)
7070
.whenNot(CollectionUtils::isEmpty);
71-
members.add("stack_trace", LogEvent::getThrown).whenNotNull().as(extractor::stackTrace);
71+
members.add("stack_trace", LogEvent::getThrownProxy).whenNotNull().as(extractor::stackTrace);
7272
}
7373

7474
private static String asTimestamp(Instant instant) {

‎core/spring-boot/src/main/java/org/springframework/boot/logging/log4j2/SpringProfileArbiter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ private Builder() {
9090
* @return this
9191
* @see Profiles#of(String...)
9292
*/
93-
publicBuilder setName(String name) {
93+
Builder setName(String name) {
9494
this.name = name;
9595
return this;
9696
}

‎core/spring-boot/src/main/java/org/springframework/boot/logging/log4j2/StructuredLogLayout.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,12 +87,12 @@ static final class Builder implements org.apache.logging.log4j.core.util.Builder
8787
@SuppressWarnings("NullAway.Init")
8888
private String charset = StandardCharsets.UTF_8.name();
8989

90-
publicBuilder setFormat(String format) {
90+
Builder setFormat(String format) {
9191
this.format = format;
9292
return this;
9393
}
9494

95-
publicBuilder setCharset(String charset) {
95+
Builder setCharset(String charset) {
9696
this.charset = charset;
9797
return this;
9898
}

‎core/spring-boot/src/main/java/org/springframework/boot/logging/log4j2/WhitespaceThrowablePatternConverter.java

Lines changed: 7 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@
2020
import org.apache.logging.log4j.core.config.Configuration;
2121
import org.apache.logging.log4j.core.config.plugins.Plugin;
2222
import org.apache.logging.log4j.core.pattern.ConverterKeys;
23-
import org.apache.logging.log4j.core.pattern.ExtendedThrowablePatternConverter;
24-
import org.apache.logging.log4j.core.pattern.LogEventPatternConverter;
2523
import org.apache.logging.log4j.core.pattern.PatternConverter;
2624
import org.apache.logging.log4j.core.pattern.ThrowablePatternConverter;
2725
import org.jspecify.annotations.Nullable;
@@ -35,33 +33,21 @@
3533
*/
3634
@Plugin(name = "WhitespaceThrowablePatternConverter", category = PatternConverter.CATEGORY)
3735
@ConverterKeys({ "wEx", "wThrowable", "wException" })
38-
public final class WhitespaceThrowablePatternConverter extends LogEventPatternConverter {
36+
public final class WhitespaceThrowablePatternConverter extends ThrowablePatternConverter {
3937

40-
private final ExtendedThrowablePatternConverter delegate;
41-
42-
private final String separator;
43-
44-
@SuppressWarnings("deprecation") // https://github.com/apache/logging-log4j2/issues/3809
45-
private WhitespaceThrowablePatternConverter(Configuration configuration, @Nullable String[] options) {
46-
super("WhitespaceThrowable", "throwable");
47-
this.delegate = ExtendedThrowablePatternConverter.newInstance(configuration, options);
48-
this.separator = this.delegate.getOptions().getSeparator();
38+
private WhitespaceThrowablePatternConverter(Configuration configuration, String @Nullable [] options) {
39+
super("WhitespaceThrowable", "throwable", options, configuration);
4940
}
5041

5142
@Override
5243
public void format(LogEvent event, StringBuilder buffer) {
5344
if (event.getThrown() != null) {
54-
buffer.append(this.separator);
55-
this.delegate.format(event, buffer);
56-
buffer.append(this.separator);
45+
buffer.append(this.options.getSeparator());
46+
super.format(event, buffer);
47+
buffer.append(this.options.getSeparator());
5748
}
5849
}
5950

60-
@Override
61-
public boolean handlesThrowable() {
62-
return true;
63-
}
64-
6551
/**
6652
* Creates a new instance of the class. Required by Log4J2.
6753
* @param configuration current configuration
@@ -70,7 +56,7 @@ public boolean handlesThrowable() {
7056
* @return a new {@code WhitespaceThrowablePatternConverter}
7157
*/
7258
public static WhitespaceThrowablePatternConverter newInstance(Configuration configuration,
73-
@Nullable String[] options) {
59+
String@Nullable [] options) {
7460
return new WhitespaceThrowablePatternConverter(configuration, options);
7561
}
7662

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /