You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rp...@apache.org on 2016/04/05 17:53:05 UTC
[13/23] logging-log4j2 git commit: LOG4J2-1343 make appending methods
protected
LOG4J2-1343 make appending methods protected
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/085cb1f7
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/085cb1f7
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/085cb1f7
Branch: refs/heads/LOG4J2-1343-no-gc-outputstreamappenders
Commit: 085cb1f768ebaae741cc2db7e8fca787f205a804
Parents: 7cef3f9
Author: rpopma <rp...@apache.org>
Authored: Tue Apr 5 23:08:15 2016 +0900
Committer: rpopma <rp...@apache.org>
Committed: Tue Apr 5 23:08:15 2016 +0900
----------------------------------------------------------------------
.../appender/AbstractOutputStreamAppender.java | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/085cb1f7/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractOutputStreamAppender.java
----------------------------------------------------------------------
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 62f09c6..b968af2 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
@@ -111,28 +111,32 @@ public abstract class AbstractOutputStreamAppender<M extends OutputStreamManager
}
}
- private void tryAppend(final LogEvent event) {
+ protected void tryAppend(final LogEvent event) {
if (Constants.ENABLE_DIRECT_ENCODERS) {
directEncodeEvent(event);
} else {
- final byte[] bytes = getLayout().toByteArray(event);
- if (bytes != null && bytes.length > 0) {
- manager.write(bytes, this.immediateFlush || event.isEndOfBatch());
- }
+ writeByteArrayToManager(event);
}
}
- private void directEncodeEvent(final LogEvent event) {
+ protected void directEncodeEvent(final LogEvent event) {
synchronized (manager) {
final ByteBufferDestination destination = manager.getByteBufferDestination();
getLayout().encode(event, destination);
- if (this.immediateFlush || event.isEndOfBatch()) {
+ if (manager.isAutoBuffered() || this.immediateFlush || event.isEndOfBatch()) {
destination.drain(destination.getByteBuffer()); // write buffer to outputStream
manager.flush();
}
}
}
+ protected void writeByteArrayToManager(final LogEvent event) {
+ final byte[] bytes = getLayout().toByteArray(event);
+ if (bytes != null && bytes.length > 0) {
+ manager.write(bytes, this.immediateFlush || event.isEndOfBatch());
+ }
+ }
+
private void reportAppendError(final Exception ex) {
error("Unable to write to stream " + manager.getName() + " for appender " + getName() + ": " + ex);
}