Skip to content

Commit d0c00e9

Browse files
ppkarwaszvy
andauthored
Add missing setters to Rfc5424LayoutBuilder (#4076)
* Restore support for documented `Rfc5424Layout` attributes In `2.21.0`, `Rfc5424Layout` was migrated from a factory method to the builder pattern. During this change, the recognized names of several configuration attributes unintentionally diverged from the documented ones. As a result, some documented attributes were no longer recognized, while new, undocumented names were introduced. This change restores support for the documented attribute names while continuing to accept the names introduced in `2.21.0` for backward compatibility. Fixes #4022 Co-authored-by: Volkan Yazıcı <volkan@yazi.ci> * Add missing setters to `Rfc5424LayoutBuilder` This change introduces setter methods for the private fields added to `Rfc5424LayoutBuilder` in version `2.25.4`. These fields were originally introduced to restore configuration options that existed in `2.20.0` but were unintentionally renamed in `2.21.0`. Due to semantic versioning constraints, setters were not added at that time. With the `2.26.0` release, it is now appropriate to expose these fields via setters, restoring full configurability and improving API usability. * fix: wrong reference in Javadoc --------- Co-authored-by: Volkan Yazıcı <volkan@yazi.ci>
1 parent 83702bb commit d0c00e9

4 files changed

Lines changed: 98 additions & 21 deletions

File tree

log4j-core-test/src/test/java/org/apache/logging/log4j/core/layout/Rfc5424LayoutTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -747,10 +747,10 @@ void testLayoutBuilder() {
747747
.setEin("1234.56.7")
748748
.setIncludeMDC(true)
749749
.setMdcId("RequestContext")
750-
.setIncludeNL(true)
750+
.setNewLine(true)
751751
.setAppName("ATM")
752-
.setExcludes("key1, key2, locale")
753-
.setUseTLSMessageFormat(true)
752+
.setMdcExcludes("key1, key2, locale")
753+
.setUseTlsMessageFormat(true)
754754
.build();
755755

756756
final ListAppender appender = new ListAppender("List", null, layout, true, false);

log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SyslogAppender.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -121,15 +121,15 @@ public SyslogAppender build() {
121121
.setMdcId(mdcId)
122122
.setMdcPrefix(mdcPrefix)
123123
.setEventPrefix(eventPrefix)
124-
.setIncludeNL(newLine)
125-
.setEscapeNL(escapeNL)
124+
.setNewLine(newLine)
125+
.setNewLineEscape(escapeNL)
126126
.setAppName(appName)
127127
.setMessageId(msgId)
128-
.setExcludes(excludes)
129-
.setIncludes(includes)
130-
.setRequired(required)
128+
.setMdcExcludes(excludes)
129+
.setMdcIncludes(includes)
130+
.setMdcRequired(required)
131131
.setExceptionPattern(exceptionPattern)
132-
.setUseTLSMessageFormat(useTlsMessageFormat)
132+
.setUseTlsMessageFormat(useTlsMessageFormat)
133133
.setLoggerFields(loggerFields)
134134
.setConfiguration(configuration)
135135
.build()

log4j-core/src/main/java/org/apache/logging/log4j/core/layout/Rfc5424Layout.java

Lines changed: 78 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -751,19 +751,19 @@ public static Rfc5424Layout createLayout(
751751
.setId(id)
752752
.setEin(String.valueOf(enterpriseNumber))
753753
.setIncludeMDC(includeMDC)
754-
.setIncludeNL(newLine)
755-
.setEscapeNL(escapeNL)
754+
.setNewLine(newLine)
755+
.setNewLineEscape(escapeNL)
756756
.setMdcId(mdcId)
757757
.setMdcPrefix(mdcPrefix)
758758
.setEventPrefix(eventPrefix)
759759
.setAppName(appName)
760760
.setMessageId(msgId)
761-
.setExcludes(excludes)
762-
.setIncludes(includes)
763-
.setRequired(required)
761+
.setMdcExcludes(excludes)
762+
.setMdcIncludes(includes)
763+
.setMdcRequired(required)
764764
.setCharset(StandardCharsets.UTF_8)
765765
.setExceptionPattern(exceptionPattern)
766-
.setUseTLSMessageFormat(useTlsMessageFormat)
766+
.setUseTlsMessageFormat(useTlsMessageFormat)
767767
.setLoggerFields(loggerFields)
768768
.build();
769769
}
@@ -829,7 +829,6 @@ public static class Rfc5424LayoutBuilder extends AbstractStringLayout.Builder<Rf
829829
*
830830
* <p>Default is {@code false}.</p>
831831
*/
832-
@SuppressWarnings("log4j.public.setter")
833832
@PluginBuilderAttribute
834833
private boolean newLine;
835834

@@ -846,7 +845,6 @@ public static class Rfc5424LayoutBuilder extends AbstractStringLayout.Builder<Rf
846845
*
847846
* <p>By default, new lines are not escaped.</p>
848847
*/
849-
@SuppressWarnings("log4j.public.setter")
850848
@PluginBuilderAttribute
851849
private String newLineEscape;
852850

@@ -898,7 +896,6 @@ public static class Rfc5424LayoutBuilder extends AbstractStringLayout.Builder<Rf
898896
*
899897
* <p>Mutually exclusive with {@link #mdcIncludes}.</p>
900898
*/
901-
@SuppressWarnings("log4j.public.setter")
902899
@PluginBuilderAttribute
903900
private String mdcExcludes;
904901

@@ -915,7 +912,6 @@ public static class Rfc5424LayoutBuilder extends AbstractStringLayout.Builder<Rf
915912
*
916913
* <p>Mutually exclusive with {@link #mdcExcludes}.</p>
917914
*/
918-
@SuppressWarnings("log4j.public.setter")
919915
@PluginBuilderAttribute
920916
private String mdcIncludes;
921917

@@ -930,7 +926,6 @@ public static class Rfc5424LayoutBuilder extends AbstractStringLayout.Builder<Rf
930926
/**
931927
* A comma separated list of MDC keys that must be present in the MDC.
932928
*/
933-
@SuppressWarnings("log4j.public.setter")
934929
@PluginBuilderAttribute
935930
private String mdcRequired;
936931

@@ -953,7 +948,6 @@ public static class Rfc5424LayoutBuilder extends AbstractStringLayout.Builder<Rf
953948
*
954949
* <p>Default is {@code false}.</p>
955950
*/
956-
@SuppressWarnings("log4j.public.setter")
957951
@PluginBuilderAttribute
958952
private boolean useTlsMessageFormat;
959953

@@ -1002,16 +996,40 @@ public Rfc5424LayoutBuilder setIncludeMDC(final boolean includeMDC) {
1002996
return this;
1003997
}
1004998

999+
/**
1000+
* @deprecated Since 2.26.0 use {@link #setNewLine} instead.
1001+
*/
1002+
@Deprecated
10051003
public Rfc5424LayoutBuilder setIncludeNL(final boolean includeNL) {
10061004
this.includeNL = includeNL;
10071005
return this;
10081006
}
10091007

1008+
/**
1009+
* @since 2.26.0
1010+
*/
1011+
public Rfc5424LayoutBuilder setNewLine(boolean newLine) {
1012+
this.newLine = newLine;
1013+
return this;
1014+
}
1015+
1016+
/**
1017+
* @deprecated Since 2.26.0 use {@link #setNewLineEscape} instead.
1018+
*/
1019+
@Deprecated
10101020
public Rfc5424LayoutBuilder setEscapeNL(final String escapeNL) {
10111021
this.escapeNL = escapeNL;
10121022
return this;
10131023
}
10141024

1025+
/**
1026+
* @since 2.26.0
1027+
*/
1028+
public Rfc5424LayoutBuilder setNewLineEscape(String newLineEscape) {
1029+
this.newLineEscape = newLineEscape;
1030+
return this;
1031+
}
1032+
10151033
public Rfc5424LayoutBuilder setMdcId(final String mdcId) {
10161034
this.mdcId = mdcId;
10171035
return this;
@@ -1037,21 +1055,57 @@ public Rfc5424LayoutBuilder setMessageId(final String messageId) {
10371055
return this;
10381056
}
10391057

1058+
/**
1059+
* @deprecated since 2.26.0 use {@link #setMdcExcludes} instead
1060+
*/
1061+
@Deprecated
10401062
public Rfc5424LayoutBuilder setExcludes(final String excludes) {
10411063
this.excludes = excludes;
10421064
return this;
10431065
}
10441066

1067+
/**
1068+
* @since 2.26.0
1069+
*/
1070+
public Rfc5424LayoutBuilder setMdcExcludes(String mdcExcludes) {
1071+
this.mdcExcludes = mdcExcludes;
1072+
return this;
1073+
}
1074+
1075+
/**
1076+
* @deprecated since 2.26.0 use {@link #setMdcIncludes} instead
1077+
*/
1078+
@Deprecated
10451079
public Rfc5424LayoutBuilder setIncludes(String includes) {
10461080
this.includes = includes;
10471081
return this;
10481082
}
10491083

1084+
/**
1085+
* @since 2.26.0
1086+
*/
1087+
public Rfc5424LayoutBuilder setMdcIncludes(String mdcIncludes) {
1088+
this.mdcIncludes = mdcIncludes;
1089+
return this;
1090+
}
1091+
1092+
/**
1093+
* @deprecated since 2.26.0 use {@link #setMdcRequired} instead
1094+
*/
1095+
@Deprecated
10501096
public Rfc5424LayoutBuilder setRequired(final String required) {
10511097
this.required = required;
10521098
return this;
10531099
}
10541100

1101+
/**
1102+
* @since 2.26.0
1103+
*/
1104+
public Rfc5424LayoutBuilder setMdcRequired(String mdcRequired) {
1105+
this.mdcRequired = mdcRequired;
1106+
return this;
1107+
}
1108+
10551109
// Kept for binary compatibility
10561110
public Rfc5424LayoutBuilder setCharset(final Charset charset) {
10571111
return super.setCharset(charset);
@@ -1062,11 +1116,23 @@ public Rfc5424LayoutBuilder setExceptionPattern(final String exceptionPattern) {
10621116
return this;
10631117
}
10641118

1119+
/**
1120+
* @deprecated since 2.26.0 use {@link #setUseTlsMessageFormat} instead
1121+
*/
1122+
@Deprecated
10651123
public Rfc5424LayoutBuilder setUseTLSMessageFormat(final boolean useTLSMessageFormat) {
10661124
this.useTLSMessageFormat = useTLSMessageFormat;
10671125
return this;
10681126
}
10691127

1128+
/**
1129+
* @since 2.26.0
1130+
*/
1131+
public Rfc5424LayoutBuilder setUseTlsMessageFormat(boolean useTlsMessageFormat) {
1132+
this.useTlsMessageFormat = useTlsMessageFormat;
1133+
return this;
1134+
}
1135+
10701136
public Rfc5424LayoutBuilder setLoggerFields(final LoggerFields[] loggerFields) {
10711137
this.loggerFields = loggerFields;
10721138
return this;
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<entry xmlns="https://logging.apache.org/xml/ns"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="
5+
https://logging.apache.org/xml/ns
6+
https://logging.apache.org/xml/ns/log4j-changelog-0.xsd"
7+
type="added">
8+
<description format="asciidoc">
9+
Add missing setters to `Rfc5424LayoutBuilder`.
10+
</description>
11+
</entry>

0 commit comments

Comments
 (0)