From 2c9ca02f277a671935f9da5d1a9f8bbf430bd90b Mon Sep 17 00:00:00 2001 From: Collin Smith Date: Wed, 26 Aug 2020 11:20:28 -0700 Subject: [PATCH] Changed responsibility chain s.t. RiiabloEncoder defers to SimpleEncoder for message content --- .../com/riiablo/logger/RiiabloEncoder.java | 24 ++++--------------- .../src/com/riiablo/logger/SimpleEncoder.java | 15 +++++++++++- 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/core/src/com/riiablo/logger/RiiabloEncoder.java b/core/src/com/riiablo/logger/RiiabloEncoder.java index 14c18e2e..c9eef698 100644 --- a/core/src/com/riiablo/logger/RiiabloEncoder.java +++ b/core/src/com/riiablo/logger/RiiabloEncoder.java @@ -1,30 +1,16 @@ package com.riiablo.logger; import java.io.OutputStream; -import org.apache.commons.lang3.ClassUtils; -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.exception.ExceptionUtils; public class RiiabloEncoder extends SimpleEncoder { private final StringBuilder buffer = new StringBuilder(1024); @Override public void encode(LogEvent event, OutputStream out) { - try { - buffer.append(StringUtils.rightPad(event.level().name(), 5)); - buffer.append(' '); - buffer.append('['); - buffer.append(ClassUtils.getShortClassName(event.source().getClassName())); - buffer.append(']'); - buffer.append(' '); - buffer.append(event.message().format()); - out.write(buffer.toString().getBytes(US_ASCII)); - out.write(newLine); - out.flush(); - } catch (Throwable t) { - ExceptionUtils.rethrow(t); - } finally { - buffer.setLength(0); - } + encodeMessage(event, out); + } + + private void encodeMessage(LogEvent event, OutputStream out) { + super.encode(event, out); } } diff --git a/core/src/com/riiablo/logger/SimpleEncoder.java b/core/src/com/riiablo/logger/SimpleEncoder.java index 8fd44f1c..37c15334 100644 --- a/core/src/com/riiablo/logger/SimpleEncoder.java +++ b/core/src/com/riiablo/logger/SimpleEncoder.java @@ -2,20 +2,33 @@ package com.riiablo.logger; import java.io.OutputStream; import java.nio.charset.Charset; +import org.apache.commons.lang3.ClassUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.exception.ExceptionUtils; public class SimpleEncoder implements Encoder { static final Charset US_ASCII = Charset.forName("US-ASCII"); final byte[] newLine = System.getProperty("line.separator").getBytes(US_ASCII); + private final StringBuilder buffer = new StringBuilder(1024); + @Override public void encode(LogEvent event, OutputStream out) { try { - out.write(event.message().format().getBytes(US_ASCII)); + buffer.append(StringUtils.rightPad(event.level().name(), 5)); + buffer.append(' '); + buffer.append('['); + buffer.append(ClassUtils.getShortClassName(event.source().getClassName())); + buffer.append(']'); + buffer.append(' '); + buffer.append(event.message().format()); + out.write(buffer.toString().getBytes(US_ASCII)); out.write(newLine); out.flush(); } catch (Throwable t) { ExceptionUtils.rethrow(t); + } finally { + buffer.setLength(0); } } }