This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
The following commit(s) were added to refs/heads/release-2.x by this push:
new 1f0a6c5 Parse and use ConsoleAppener immediateFlush.
1f0a6c5 is described below
commit 1f0a6c508d6cd539f4b13bfbb0624dcde60ce4f3
Author: Gary Gregory <[email protected]>
AuthorDate: Fri Feb 4 16:41:02 2022 -0500
Parse and use ConsoleAppener immediateFlush.
Match other builders by deprecating with* APIs for set* APIs.
---
.../builders/appender/ConsoleAppenderBuilder.java | 18 ++++++++++--------
.../core/appender/AbstractOutputStreamAppender.java | 18 ++++++++++++++++++
2 files changed, 28 insertions(+), 8 deletions(-)
diff --git
a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/ConsoleAppenderBuilder.java
b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/ConsoleAppenderBuilder.java
index de279c0..319c65a 100644
---
a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/ConsoleAppenderBuilder.java
+++
b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/ConsoleAppenderBuilder.java
@@ -73,6 +73,7 @@ public class ConsoleAppenderBuilder extends AbstractBuilder
implements AppenderB
AtomicReference<List<Filter>> filters = new AtomicReference<>(new
ArrayList<>());
AtomicReference<String> level = new AtomicReference<>();
AtomicBoolean follow = new AtomicBoolean();
+ AtomicBoolean immediateFlush = new AtomicBoolean(true);
forEachElement(appenderElement.getChildNodes(), currentElement -> {
switch (currentElement.getTagName()) {
case LAYOUT_TAG:
@@ -113,18 +114,18 @@ public class ConsoleAppenderBuilder extends
AbstractBuilder implements AppenderB
case FOLLOW_PARAM: {
String value = getValueAttribute(currentElement);
if (value == null) {
- LOGGER.warn("No value supplied for Follow
parameter. Using default of {}", false);
+ LOGGER.warn("No value supplied for Follow
parameter. Using default of {}", follow);
} else {
- follow.set(Boolean.valueOf(value));
+ follow.set(Boolean.parseBoolean(value));
}
break;
}
case IMMEDIATE_FLUSH_PARAM: {
String value = getValueAttribute(currentElement);
if (value == null) {
- LOGGER.warn("No value supplied for
ImmediateFlush parameter. Using default of {}", true);
- } else if (!Boolean.getBoolean(name)) {
- LOGGER.warn("The value {} for ImmediateFlush
parameter is not supported.", value);
+ LOGGER.warn("No value supplied for
ImmediateFlush parameter. Using default of {}", immediateFlush);
+ } else {
+
immediateFlush.set(Boolean.parseBoolean(value));
}
break;
}
@@ -143,7 +144,7 @@ public class ConsoleAppenderBuilder extends AbstractBuilder
implements AppenderB
}
current = f;
}
- return createAppender(name, layout.get(), head, level.get(),
target.get(), follow.get(), config);
+ return createAppender(name, layout.get(), head, level.get(),
target.get(), immediateFlush.get(), follow.get(), config);
}
@Override
@@ -154,11 +155,11 @@ public class ConsoleAppenderBuilder extends
AbstractBuilder implements AppenderB
String level = getProperty(THRESHOLD_PARAM);
String target = getProperty(TARGET_PARAM);
boolean follow = getBooleanProperty(FOLLOW_PARAM);
- return createAppender(name, layout, filter, level, target, follow,
configuration);
+ return createAppender(name, layout, filter, level, target, true,
follow, configuration);
}
private <T extends Log4j1Configuration> Appender createAppender(String
name, Layout layout, Filter filter,
- String level, String target, boolean follow, T configuration) {
+ String level, String target, boolean immediateFlush, boolean
follow, T configuration) {
org.apache.logging.log4j.core.Layout<?> consoleLayout = null;
if (layout instanceof LayoutWrapper) {
@@ -176,6 +177,7 @@ public class ConsoleAppenderBuilder extends AbstractBuilder
implements AppenderB
.setLayout(consoleLayout)
.setFilter(consoleFilter)
.setConfiguration(configuration)
+ .setImmediateFlush(immediateFlush)
.build());
}
}
diff --git
a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractOutputStreamAppender.java
b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractOutputStreamAppender.java
index 25803a3..a6411fc 100644
---
a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractOutputStreamAppender.java
+++
b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractOutputStreamAppender.java
@@ -61,16 +61,34 @@ public abstract class AbstractOutputStreamAppender<M
extends OutputStreamManager
return immediateFlush;
}
+ public B setImmediateFlush(final boolean immediateFlush) {
+ this.immediateFlush = immediateFlush;
+ return asBuilder();
+ }
+
+ public B setBufferedIo(final boolean bufferedIo) {
+ this.bufferedIo = bufferedIo;
+ return asBuilder();
+ }
+
+ public B setBufferSize(final int bufferSize) {
+ this.bufferSize = bufferSize;
+ return asBuilder();
+ }
+
+ @Deprecated
public B withImmediateFlush(final boolean immediateFlush) {
this.immediateFlush = immediateFlush;
return asBuilder();
}
+ @Deprecated
public B withBufferedIo(final boolean bufferedIo) {
this.bufferedIo = bufferedIo;
return asBuilder();
}
+ @Deprecated
public B withBufferSize(final int bufferSize) {
this.bufferSize = bufferSize;
return asBuilder();