Sort methods in AB order. Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/30ef44b5 Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/30ef44b5 Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/30ef44b5
Branch: refs/heads/LOG4J2-608 Commit: 30ef44b5ce4cc30f9c8361411616d2ed7738f2f3 Parents: 3faca25 Author: Gary Gregory <[email protected]> Authored: Tue Sep 2 10:11:40 2014 -0400 Committer: Gary Gregory <[email protected]> Committed: Tue Sep 2 10:11:40 2014 -0400 ---------------------------------------------------------------------- .../logging/log4j/streams/ByteStreamLogger.java | 110 +++++------ .../logging/log4j/streams/CharStreamLogger.java | 64 +++---- .../streams/LoggerBufferedInputStream.java | 48 ++--- .../log4j/streams/LoggerBufferedReader.java | 16 +- .../log4j/streams/LoggerInputStream.java | 32 ++-- .../log4j/streams/LoggerOutputStream.java | 74 ++++---- .../log4j/streams/LoggerPrintStream.java | 184 +++++++++---------- .../log4j/streams/LoggerPrintWriter.java | 152 +++++++-------- .../logging/log4j/streams/LoggerReader.java | 20 +- .../logging/log4j/streams/LoggerStreams.java | 130 ++++++------- .../logging/log4j/streams/LoggerWriter.java | 40 ++-- .../log4j/streams/LoggerWriterFilter.java | 48 ++--- .../log4j/streams/util/ByteStreamLogger.java | 110 +++++------ .../log4j/streams/util/CharStreamLogger.java | 64 +++---- .../log4j/streams/AbstractLoggerWriterTest.java | 92 +++++----- .../log4j/streams/AbstractStreamTest.java | 18 +- ...LoggerBufferedInputStreamCallerInfoTest.java | 20 +- .../LoggerBufferedReaderCallerInfoTest.java | 20 +- .../LoggerInputStreamCallerInfoTest.java | 12 +- .../log4j/streams/LoggerInputStreamTest.java | 74 ++++---- .../log4j/streams/LoggerOutputStreamTest.java | 78 ++++---- .../LoggerPrintStreamCallerInfoTest.java | 66 +++---- .../log4j/streams/LoggerPrintStreamTest.java | 40 ++-- .../LoggerPrintWriterCallerInfoTest.java | 66 +++---- .../log4j/streams/LoggerPrintWriterTest.java | 40 ++-- .../streams/LoggerReaderCallerInfoTest.java | 12 +- .../logging/log4j/streams/LoggerReaderTest.java | 74 ++++---- .../streams/LoggerStreamsCallerInfoTesting.java | 18 +- 28 files changed, 861 insertions(+), 861 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/30ef44b5/log4j-streams/src/main/java/org/apache/logging/log4j/streams/ByteStreamLogger.java ---------------------------------------------------------------------- diff --git a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/ByteStreamLogger.java b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/ByteStreamLogger.java index 80f401c..83e8c3b 100644 --- a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/ByteStreamLogger.java +++ b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/ByteStreamLogger.java @@ -28,8 +28,33 @@ import org.apache.logging.log4j.Marker; import org.apache.logging.log4j.spi.ExtendedLogger; public class ByteStreamLogger { - private static final int BUFFER_SIZE = 1024; + private class ByteBufferInputStream extends InputStream { + + @Override + public int read() throws IOException { + buf.flip(); + int result = -1; + if (buf.limit() > 0) { + result = buf.get() & 0xFF; + } + buf.compact(); + return result; + } + + @Override + public int read(final byte[] bytes, final int off, final int len) throws IOException { + buf.flip(); + int result = -1; + if (buf.limit() > 0) { + result = Math.min(len, buf.limit()); + buf.get(bytes, off, result); + } + buf.compact(); + return result; + } + } + private static final int BUFFER_SIZE = 1024; private final ExtendedLogger logger; private final Level level; private final Marker marker; @@ -38,6 +63,7 @@ public class ByteStreamLogger { private final char[] msgBuf = new char[BUFFER_SIZE]; private final StringBuilder msg = new StringBuilder(); private boolean closed; + private final ByteBuffer buf = ByteBuffer.allocate(BUFFER_SIZE); public ByteStreamLogger(final ExtendedLogger logger, final Level level, final Marker marker, final Charset charset) { @@ -48,35 +74,6 @@ public class ByteStreamLogger { reader = new InputStreamReader(in, charset); } - public void put(final String fqcn, final int b) throws IOException { - if (b >= 0) { - synchronized (msg) { - buf.put((byte) (b & 0xFF)); - extractMessages(fqcn); - } - } else { - logEnd(fqcn); - } - } - - public void put(final String fqcn, final byte[] b, int off, int len) throws IOException { - if (len >= 0) { - synchronized (msg) { - while (len > buf.remaining()) { - final int remaining = buf.remaining(); - buf.put(b, off, remaining); - len -= remaining; - off += remaining; - extractMessages(fqcn); - } - buf.put(b, off, len); - extractMessages(fqcn); - } - } else { - logEnd(fqcn); - } - } - public void close(final String fqcn) { synchronized (msg) { closed = true; @@ -109,42 +106,45 @@ public class ByteStreamLogger { read = reader.read(msgBuf); } } - - private void logEnd(final String fqcn) { - if (msg.length() > 0) { - log(fqcn); - } - } private void log(final String fqcn) { // convert to string now so async loggers work logger.logIfEnabled(fqcn, level, marker, msg.toString()); msg.setLength(0); } + + private void logEnd(final String fqcn) { + if (msg.length() > 0) { + log(fqcn); + } + } - private class ByteBufferInputStream extends InputStream { - - @Override - public int read() throws IOException { - buf.flip(); - int result = -1; - if (buf.limit() > 0) { - result = buf.get() & 0xFF; + public void put(final String fqcn, final byte[] b, int off, int len) throws IOException { + if (len >= 0) { + synchronized (msg) { + while (len > buf.remaining()) { + final int remaining = buf.remaining(); + buf.put(b, off, remaining); + len -= remaining; + off += remaining; + extractMessages(fqcn); + } + buf.put(b, off, len); + extractMessages(fqcn); } - buf.compact(); - return result; + } else { + logEnd(fqcn); } + } - @Override - public int read(final byte[] bytes, final int off, final int len) throws IOException { - buf.flip(); - int result = -1; - if (buf.limit() > 0) { - result = Math.min(len, buf.limit()); - buf.get(bytes, off, result); + public void put(final String fqcn, final int b) throws IOException { + if (b >= 0) { + synchronized (msg) { + buf.put((byte) (b & 0xFF)); + extractMessages(fqcn); } - buf.compact(); - return result; + } else { + logEnd(fqcn); } } } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/30ef44b5/log4j-streams/src/main/java/org/apache/logging/log4j/streams/CharStreamLogger.java ---------------------------------------------------------------------- diff --git a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/CharStreamLogger.java b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/CharStreamLogger.java index 589bfaf..d141752 100644 --- a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/CharStreamLogger.java +++ b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/CharStreamLogger.java @@ -36,27 +36,25 @@ public class CharStreamLogger { this.marker = marker; } - public void put(final String fqcn, final int c) { - if (c >= 0) { - synchronized (msg) { - if (closed) { - return; - } - switch (c) { - case '\n': - log(fqcn); - break; - case '\r': - break; - default: - msg.append((char) c); - } - } - } else { + public void close(final String fqcn) { + synchronized (msg) { + closed = true; logEnd(fqcn); } } + private void log(final String fqcn) { + logger.logIfEnabled(fqcn, level, marker, msg.toString()); // convert to string now so async loggers + // work + msg.setLength(0); + } + + private void logEnd(final String fqcn) { + if (msg.length() > 0) { + log(fqcn); + } + } + public void put(final String fqcn, final char[] cbuf, final int off, final int len) { put(fqcn, CharBuffer.wrap(cbuf), off, len); } @@ -89,22 +87,24 @@ public class CharStreamLogger { } } - public void close(final String fqcn) { - synchronized (msg) { - closed = true; + public void put(final String fqcn, final int c) { + if (c >= 0) { + synchronized (msg) { + if (closed) { + return; + } + switch (c) { + case '\n': + log(fqcn); + break; + case '\r': + break; + default: + msg.append((char) c); + } + } + } else { logEnd(fqcn); } } - - private void logEnd(final String fqcn) { - if (msg.length() > 0) { - log(fqcn); - } - } - - private void log(final String fqcn) { - logger.logIfEnabled(fqcn, level, marker, msg.toString()); // convert to string now so async loggers - // work - msg.setLength(0); - } } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/30ef44b5/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerBufferedInputStream.java ---------------------------------------------------------------------- diff --git a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerBufferedInputStream.java b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerBufferedInputStream.java index c60ee1e..26f59ff 100644 --- a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerBufferedInputStream.java +++ b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerBufferedInputStream.java @@ -30,52 +30,52 @@ import org.apache.logging.log4j.spi.ExtendedLogger; public class LoggerBufferedInputStream extends BufferedInputStream { private static final String FQCN = LoggerBufferedInputStream.class.getName(); - public LoggerBufferedInputStream(final InputStream in, final Logger logger, final Level level) { - this(in, (ExtendedLogger) logger, FQCN, level, null); + public LoggerBufferedInputStream(final InputStream in, final Charset charset, final ExtendedLogger logger, final String fqcn, final Level level, final Marker marker) { + super(new LoggerInputStream(in, charset, logger, fqcn, level, marker)); } - public LoggerBufferedInputStream(final InputStream in, final Charset charset, final Logger logger, final Level level) { - this(in, charset, (ExtendedLogger) logger, FQCN, level, null); + public LoggerBufferedInputStream(final InputStream in, final Charset charset, final int sz, final ExtendedLogger logger, final String fqcn, final Level level, final Marker marker) { + super(new LoggerInputStream(in, charset, logger, fqcn, level, marker), sz); } - public LoggerBufferedInputStream(final InputStream in, final Logger logger, final Level level, final Marker marker) { - this(in, (ExtendedLogger) logger, FQCN, level, marker); + public LoggerBufferedInputStream(final InputStream in, final Charset charset, final int sz, final Logger logger, final Level level) { + this(in, charset, sz, (ExtendedLogger) logger, FQCN, level, null); } - public LoggerBufferedInputStream(final InputStream in, final Charset charset, final Logger logger, final Level level, final Marker marker) { - this(in, charset, (ExtendedLogger) logger, FQCN, level, marker); + public LoggerBufferedInputStream(final InputStream in, final Charset charset, final int sz, final Logger logger, final Level level, final Marker marker) { + this(in, charset, sz, (ExtendedLogger) logger, FQCN, level, marker); } - public LoggerBufferedInputStream(final InputStream in, final int sz, final Logger logger, final Level level) { - this(in, sz, (ExtendedLogger) logger, FQCN, level, null); + public LoggerBufferedInputStream(final InputStream in, final Charset charset, final Logger logger, final Level level) { + this(in, charset, (ExtendedLogger) logger, FQCN, level, null); } - public LoggerBufferedInputStream(final InputStream in, final Charset charset, final int sz, final Logger logger, final Level level) { - this(in, charset, sz, (ExtendedLogger) logger, FQCN, level, null); + public LoggerBufferedInputStream(final InputStream in, final Charset charset, final Logger logger, final Level level, final Marker marker) { + this(in, charset, (ExtendedLogger) logger, FQCN, level, marker); } - public LoggerBufferedInputStream(final InputStream in, final int sz, final Logger logger, final Level level, final Marker marker) { - this(in, sz, (ExtendedLogger) logger, FQCN, level, marker); + public LoggerBufferedInputStream(final InputStream in, final ExtendedLogger logger, final String fqcn, final Level level, final Marker marker) { + this(in, Charset.defaultCharset(), logger, fqcn, level, marker); } - public LoggerBufferedInputStream(final InputStream in, final Charset charset, final int sz, final Logger logger, final Level level, final Marker marker) { - this(in, charset, sz, (ExtendedLogger) logger, FQCN, level, marker); + public LoggerBufferedInputStream(final InputStream in, final int sz, final ExtendedLogger logger, final String fqcn, final Level level, final Marker marker) { + this(in, Charset.defaultCharset(), sz, logger, fqcn, level, marker); } - public LoggerBufferedInputStream(final InputStream in, final ExtendedLogger logger, final String fqcn, final Level level, final Marker marker) { - this(in, Charset.defaultCharset(), logger, fqcn, level, marker); + public LoggerBufferedInputStream(final InputStream in, final int sz, final Logger logger, final Level level) { + this(in, sz, (ExtendedLogger) logger, FQCN, level, null); } - public LoggerBufferedInputStream(final InputStream in, final Charset charset, final ExtendedLogger logger, final String fqcn, final Level level, final Marker marker) { - super(new LoggerInputStream(in, charset, logger, fqcn, level, marker)); + public LoggerBufferedInputStream(final InputStream in, final int sz, final Logger logger, final Level level, final Marker marker) { + this(in, sz, (ExtendedLogger) logger, FQCN, level, marker); } - public LoggerBufferedInputStream(final InputStream in, final int sz, final ExtendedLogger logger, final String fqcn, final Level level, final Marker marker) { - this(in, Charset.defaultCharset(), sz, logger, fqcn, level, marker); + public LoggerBufferedInputStream(final InputStream in, final Logger logger, final Level level) { + this(in, (ExtendedLogger) logger, FQCN, level, null); } - public LoggerBufferedInputStream(final InputStream in, final Charset charset, final int sz, final ExtendedLogger logger, final String fqcn, final Level level, final Marker marker) { - super(new LoggerInputStream(in, charset, logger, fqcn, level, marker), sz); + public LoggerBufferedInputStream(final InputStream in, final Logger logger, final Level level, final Marker marker) { + this(in, (ExtendedLogger) logger, FQCN, level, marker); } @Override http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/30ef44b5/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerBufferedReader.java ---------------------------------------------------------------------- diff --git a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerBufferedReader.java b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerBufferedReader.java index 16d998c..74651a2 100644 --- a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerBufferedReader.java +++ b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerBufferedReader.java @@ -30,12 +30,12 @@ import org.apache.logging.log4j.spi.ExtendedLogger; public class LoggerBufferedReader extends BufferedReader { private static final String FQCN = LoggerBufferedReader.class.getName(); - public LoggerBufferedReader(final Reader reader, final Logger logger, final Level level) { - this(reader, (ExtendedLogger) logger, FQCN, level, null); + public LoggerBufferedReader(final Reader reader, final ExtendedLogger logger, final String fqcn, final Level level, final Marker marker) { + super(new LoggerReader(reader, logger, FQCN, level, marker)); } - public LoggerBufferedReader(final Reader reader, final Logger logger, final Level level, final Marker marker) { - this(reader, (ExtendedLogger) logger, FQCN, level, marker); + public LoggerBufferedReader(final Reader reader, final int sz, final ExtendedLogger logger, final String fqcn, final Level level, final Marker marker) { + super(new LoggerReader(reader, logger, FQCN, level, marker), sz); } public LoggerBufferedReader(final Reader reader, final int sz, final Logger logger, final Level level) { @@ -46,12 +46,12 @@ public class LoggerBufferedReader extends BufferedReader { this(reader, sz, (ExtendedLogger) logger, FQCN, level, marker); } - public LoggerBufferedReader(final Reader reader, final ExtendedLogger logger, final String fqcn, final Level level, final Marker marker) { - super(new LoggerReader(reader, logger, FQCN, level, marker)); + public LoggerBufferedReader(final Reader reader, final Logger logger, final Level level) { + this(reader, (ExtendedLogger) logger, FQCN, level, null); } - public LoggerBufferedReader(final Reader reader, final int sz, final ExtendedLogger logger, final String fqcn, final Level level, final Marker marker) { - super(new LoggerReader(reader, logger, FQCN, level, marker), sz); + public LoggerBufferedReader(final Reader reader, final Logger logger, final Level level, final Marker marker) { + this(reader, (ExtendedLogger) logger, FQCN, level, marker); } @Override http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/30ef44b5/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerInputStream.java ---------------------------------------------------------------------- diff --git a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerInputStream.java b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerInputStream.java index f36dab6..57a59bd 100644 --- a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerInputStream.java +++ b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerInputStream.java @@ -38,26 +38,32 @@ public class LoggerInputStream extends FilterInputStream { private final String fqcn; private final ByteStreamLogger logger; - public LoggerInputStream(final InputStream in, final Logger logger, final Level level) { - this(in, Charset.defaultCharset(), (ExtendedLogger) logger, FQCN, level, null); + public LoggerInputStream(final InputStream in, final Charset charset, final ExtendedLogger logger, final String fqcn, final Level level, final Marker marker) { + super(in); + this.logger = new ByteStreamLogger(logger, level, marker, charset); + this.fqcn = fqcn; } public LoggerInputStream(final InputStream in, final Charset charset, final Logger logger, final Level level) { this(in, charset, (ExtendedLogger) logger, FQCN, level, null); } - public LoggerInputStream(final InputStream in, final Logger logger, final Level level, final Marker marker) { - this(in, Charset.defaultCharset(), (ExtendedLogger) logger, FQCN, level, marker); - } - public LoggerInputStream(final InputStream in, final Charset charset, final Logger logger, final Level level, final Marker marker) { this(in, charset, (ExtendedLogger) logger, FQCN, level, marker); } - public LoggerInputStream(final InputStream in, final Charset charset, final ExtendedLogger logger, final String fqcn, final Level level, final Marker marker) { - super(in); - this.logger = new ByteStreamLogger(logger, level, marker, charset); - this.fqcn = fqcn; + public LoggerInputStream(final InputStream in, final Logger logger, final Level level) { + this(in, Charset.defaultCharset(), (ExtendedLogger) logger, FQCN, level, null); + } + + public LoggerInputStream(final InputStream in, final Logger logger, final Level level, final Marker marker) { + this(in, Charset.defaultCharset(), (ExtendedLogger) logger, FQCN, level, marker); + } + + @Override + public void close() throws IOException { + logger.close(fqcn); + super.close(); } @Override @@ -80,12 +86,6 @@ public class LoggerInputStream extends FilterInputStream { } @Override - public void close() throws IOException { - logger.close(fqcn); - super.close(); - } - - @Override public String toString() { return LoggerInputStream.class.getSimpleName() + "{stream=" + in + '}'; } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/30ef44b5/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerOutputStream.java ---------------------------------------------------------------------- diff --git a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerOutputStream.java b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerOutputStream.java index 609fad2..4b11415 100644 --- a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerOutputStream.java +++ b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerOutputStream.java @@ -41,86 +41,86 @@ public class LoggerOutputStream extends OutputStream { private final ByteStreamLogger logger; private final String fqcn; - public LoggerOutputStream(final Logger logger, final Level level) { - this(null, Charset.defaultCharset(), (ExtendedLogger) logger, FQCN, level, null); - } - public LoggerOutputStream(final Charset charset, final Logger logger, final Level level) { this(null, charset, (ExtendedLogger) logger, FQCN, level, null); } - public LoggerOutputStream(final Logger logger, final Level level, final Marker marker) { - this(null, Charset.defaultCharset(), (ExtendedLogger) logger, FQCN, level, marker); - } - public LoggerOutputStream(final Charset charset, final Logger logger, final Level level, final Marker marker) { this(null, charset, (ExtendedLogger) logger, FQCN, level, marker); } - public LoggerOutputStream(final OutputStream out, final Logger logger, final Level level) { - this(out, Charset.defaultCharset(), (ExtendedLogger) logger, FQCN, level, null); + public LoggerOutputStream(final Logger logger, final Level level) { + this(null, Charset.defaultCharset(), (ExtendedLogger) logger, FQCN, level, null); } - public LoggerOutputStream(final OutputStream out, final Charset charset, final Logger logger, final Level level) { - this(out, charset, (ExtendedLogger) logger, FQCN, level, null); + public LoggerOutputStream(final Logger logger, final Level level, final Marker marker) { + this(null, Charset.defaultCharset(), (ExtendedLogger) logger, FQCN, level, marker); } - public LoggerOutputStream(final OutputStream out, final Logger logger, final Level level, final Marker marker) { - this(out, Charset.defaultCharset(), (ExtendedLogger) logger, FQCN, level, marker); + public LoggerOutputStream(final OutputStream out, final Charset charset, final ExtendedLogger logger, final String fqcn, final Level level, + final Marker marker) { + this.out = out; + this.logger = new ByteStreamLogger(logger, level, marker, charset); + this.fqcn = fqcn; + } + + public LoggerOutputStream(final OutputStream out, final Charset charset, final Logger logger, final Level level) { + this(out, charset, (ExtendedLogger) logger, FQCN, level, null); } public LoggerOutputStream(final OutputStream out, final Charset charset, final Logger logger, final Level level, final Marker marker) { this(out, charset, (ExtendedLogger) logger, FQCN, level, marker); } - public LoggerOutputStream(final OutputStream out, final Charset charset, final ExtendedLogger logger, final String fqcn, final Level level, - final Marker marker) { - this.out = out; - this.logger = new ByteStreamLogger(logger, level, marker, charset); - this.fqcn = fqcn; + public LoggerOutputStream(final OutputStream out, final Logger logger, final Level level) { + this(out, Charset.defaultCharset(), (ExtendedLogger) logger, FQCN, level, null); + } + + public LoggerOutputStream(final OutputStream out, final Logger logger, final Level level, final Marker marker) { + this(out, Charset.defaultCharset(), (ExtendedLogger) logger, FQCN, level, marker); } @Override - public void write(final int b) throws IOException { + public void close() throws IOException { if (out != null) { - out.write(b); + out.close(); } - logger.put(fqcn, (byte) (b & 0xFF)); + logger.close(fqcn); } @Override - public void write(final byte[] b) throws IOException { + public void flush() throws IOException { if (out != null) { - out.write(b); + out.flush(); } - logger.put(fqcn, b, 0, b.length); } @Override - public void write(final byte[] b, final int off, final int len) throws IOException { - if (out != null) { - out.write(b, off, len); - } - logger.put(fqcn, b, off, len); + public String toString() { + return LoggerOutputStream.class.getSimpleName() + "{stream=" + out + '}'; } @Override - public void flush() throws IOException { + public void write(final byte[] b) throws IOException { if (out != null) { - out.flush(); + out.write(b); } + logger.put(fqcn, b, 0, b.length); } @Override - public void close() throws IOException { + public void write(final byte[] b, final int off, final int len) throws IOException { if (out != null) { - out.close(); + out.write(b, off, len); } - logger.close(fqcn); + logger.put(fqcn, b, off, len); } @Override - public String toString() { - return LoggerOutputStream.class.getSimpleName() + "{stream=" + out + '}'; + public void write(final int b) throws IOException { + if (out != null) { + out.write(b); + } + logger.put(fqcn, (byte) (b & 0xFF)); } } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/30ef44b5/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerPrintStream.java ---------------------------------------------------------------------- diff --git a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerPrintStream.java b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerPrintStream.java index 5829a8d..fe171b1 100644 --- a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerPrintStream.java +++ b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerPrintStream.java @@ -39,84 +39,87 @@ import org.apache.logging.log4j.spi.ExtendedLogger; public class LoggerPrintStream extends PrintStream { private static final String FQCN = LoggerPrintStream.class.getName(); - public LoggerPrintStream(final Logger logger, final Level level) { - this(null, false, (ExtendedLogger) logger, FQCN, level, null); - } - public LoggerPrintStream(final Charset charset, final Logger logger, final Level level) throws UnsupportedEncodingException { this(null, false, charset, (ExtendedLogger) logger, FQCN, level, null); } - public LoggerPrintStream(final Logger logger, final Level level, final Marker marker) { - this(null, false, (ExtendedLogger) logger, FQCN, level, marker); - } - public LoggerPrintStream(final Charset charset, final Logger logger, final Level level, final Marker marker) throws UnsupportedEncodingException { this(null, false, charset, (ExtendedLogger) logger, FQCN, level, marker); } - public LoggerPrintStream(final OutputStream out, final Logger logger, final Level level) { - this(out, false, (ExtendedLogger) logger, FQCN, level, null); + public LoggerPrintStream(final Logger logger, final Level level) { + this(null, false, (ExtendedLogger) logger, FQCN, level, null); } - public LoggerPrintStream(final OutputStream out, final Charset charset, final Logger logger, final Level level) throws UnsupportedEncodingException { - this(out, false, charset, (ExtendedLogger) logger, FQCN, level, null); + public LoggerPrintStream(final Logger logger, final Level level, final Marker marker) { + this(null, false, (ExtendedLogger) logger, FQCN, level, marker); } - public LoggerPrintStream(final OutputStream out, final Logger logger, final Level level, final Marker marker) { - this(out, false, (ExtendedLogger) logger, FQCN, level, marker); + public LoggerPrintStream(final OutputStream out, final boolean autoFlush, final Charset charset, final ExtendedLogger logger, final String fqcn, + final Level level, final Marker marker) throws UnsupportedEncodingException { + super(new LoggerOutputStream(out, charset, logger, fqcn, level, marker), autoFlush, charset.name()); } - public LoggerPrintStream(final OutputStream out, final Charset charset, final Logger logger, final Level level, final Marker marker) + public LoggerPrintStream(final OutputStream out, final boolean autoFlush, final Charset charset, final Logger logger, final Level level) throws UnsupportedEncodingException { - this(out, false, charset, (ExtendedLogger) logger, FQCN, level, marker); + this(out, autoFlush, charset, (ExtendedLogger) logger, FQCN, level, null); } - public LoggerPrintStream(final OutputStream out, final boolean autoFlush, final Logger logger, final Level level) { - this(out, autoFlush, (ExtendedLogger) logger, FQCN, level, null); + public LoggerPrintStream(final OutputStream out, final boolean autoFlush, final Charset charset, final Logger logger, final Level level, final Marker marker) + throws UnsupportedEncodingException { + this(out, autoFlush, charset, (ExtendedLogger) logger, FQCN, level, marker); } - public LoggerPrintStream(final OutputStream out, final boolean autoFlush, final Charset charset, final Logger logger, final Level level) - throws UnsupportedEncodingException { - this(out, autoFlush, charset, (ExtendedLogger) logger, FQCN, level, null); + public LoggerPrintStream(final OutputStream out, final boolean autoFlush, final ExtendedLogger logger, final String fqcn, final Level level, final Marker marker) { + super(new LoggerOutputStream(out, Charset.defaultCharset(), logger, fqcn, level, marker), autoFlush); + } + + public LoggerPrintStream(final OutputStream out, final boolean autoFlush, final Logger logger, final Level level) { + this(out, autoFlush, (ExtendedLogger) logger, FQCN, level, null); } public LoggerPrintStream(final OutputStream out, final boolean autoFlush, final Logger logger, final Level level, final Marker marker) { this(out, autoFlush, (ExtendedLogger) logger, FQCN, level, marker); } - public LoggerPrintStream(final OutputStream out, final boolean autoFlush, final Charset charset, final Logger logger, final Level level, final Marker marker) + public LoggerPrintStream(final OutputStream out, final Charset charset, final Logger logger, final Level level) throws UnsupportedEncodingException { + this(out, false, charset, (ExtendedLogger) logger, FQCN, level, null); + } + + public LoggerPrintStream(final OutputStream out, final Charset charset, final Logger logger, final Level level, final Marker marker) throws UnsupportedEncodingException { - this(out, autoFlush, charset, (ExtendedLogger) logger, FQCN, level, marker); + this(out, false, charset, (ExtendedLogger) logger, FQCN, level, marker); } - public LoggerPrintStream(final OutputStream out, final boolean autoFlush, final ExtendedLogger logger, final String fqcn, final Level level, final Marker marker) { - super(new LoggerOutputStream(out, Charset.defaultCharset(), logger, fqcn, level, marker), autoFlush); + public LoggerPrintStream(final OutputStream out, final Logger logger, final Level level) { + this(out, false, (ExtendedLogger) logger, FQCN, level, null); } - public LoggerPrintStream(final OutputStream out, final boolean autoFlush, final Charset charset, final ExtendedLogger logger, final String fqcn, - final Level level, final Marker marker) throws UnsupportedEncodingException { - super(new LoggerOutputStream(out, charset, logger, fqcn, level, marker), autoFlush, charset.name()); + public LoggerPrintStream(final OutputStream out, final Logger logger, final Level level, final Marker marker) { + this(out, false, (ExtendedLogger) logger, FQCN, level, marker); } @Override - public void write(final int b) { - super.write(b); + public LoggerPrintStream append(final char c) { + super.append(c); + return this; } @Override - public void write(final byte[] b) throws IOException { - super.write(b); + public LoggerPrintStream append(final CharSequence csq) { + super.append(csq); + return this; } @Override - public void write(final byte[] b, final int off, final int len) { - super.write(b, off, len); + public LoggerPrintStream append(final CharSequence csq, final int start, final int end) { + super.append(csq, start, end); + return this; } @Override - public void flush() { - super.flush(); + public boolean checkError() { + return super.checkError(); } @Override @@ -125,6 +128,23 @@ public class LoggerPrintStream extends PrintStream { } @Override + public void flush() { + super.flush(); + } + + @Override + public LoggerPrintStream format(final Locale l, final String format, final Object... args) { + super.format(l, format, args); + return this; + } + + @Override + public LoggerPrintStream format(final String format, final Object... args) { + super.format(format, args); + return this; + } + + @Override public void print(final boolean b) { super.print(b); } @@ -135,13 +155,13 @@ public class LoggerPrintStream extends PrintStream { } @Override - public void print(final int i) { - super.print(i); + public void print(final char[] s) { + super.print(s); } @Override - public void print(final long l) { - super.print(l); + public void print(final double d) { + super.print(d); } @Override @@ -150,13 +170,18 @@ public class LoggerPrintStream extends PrintStream { } @Override - public void print(final double d) { - super.print(d); + public void print(final int i) { + super.print(i); } @Override - public void print(final char[] s) { - super.print(s); + public void print(final long l) { + super.print(l); + } + + @Override + public void print(final Object obj) { + super.print(obj); } @Override @@ -165,8 +190,15 @@ public class LoggerPrintStream extends PrintStream { } @Override - public void print(final Object obj) { - super.print(obj); + public LoggerPrintStream printf(final Locale l, final String format, final Object... args) { + super.printf(l, format, args); + return this; + } + + @Override + public LoggerPrintStream printf(final String format, final Object... args) { + super.printf(format, args); + return this; } @Override @@ -185,12 +217,12 @@ public class LoggerPrintStream extends PrintStream { } @Override - public void println(final int x) { + public void println(final char[] x) { super.println(x); } @Override - public void println(final long x) { + public void println(final double x) { super.println(x); } @@ -200,17 +232,12 @@ public class LoggerPrintStream extends PrintStream { } @Override - public void println(final double x) { - super.println(x); - } - - @Override - public void println(final char[] x) { + public void println(final int x) { super.println(x); } @Override - public void println(final String x) { + public void println(final long x) { super.println(x); } @@ -220,54 +247,27 @@ public class LoggerPrintStream extends PrintStream { } @Override - public LoggerPrintStream printf(final String format, final Object... args) { - super.printf(format, args); - return this; - } - - @Override - public LoggerPrintStream printf(final Locale l, final String format, final Object... args) { - super.printf(l, format, args); - return this; - } - - @Override - public LoggerPrintStream append(final char c) { - super.append(c); - return this; - } - - @Override - public LoggerPrintStream append(final CharSequence csq) { - super.append(csq); - return this; - } - - @Override - public LoggerPrintStream append(final CharSequence csq, final int start, final int end) { - super.append(csq, start, end); - return this; + public void println(final String x) { + super.println(x); } @Override - public LoggerPrintStream format(final String format, final Object... args) { - super.format(format, args); - return this; + public String toString() { + return LoggerPrintStream.class.getSimpleName() + "{stream=" + out + '}'; } @Override - public LoggerPrintStream format(final Locale l, final String format, final Object... args) { - super.format(l, format, args); - return this; + public void write(final byte[] b) throws IOException { + super.write(b); } @Override - public boolean checkError() { - return super.checkError(); + public void write(final byte[] b, final int off, final int len) { + super.write(b, off, len); } @Override - public String toString() { - return LoggerPrintStream.class.getSimpleName() + "{stream=" + out + '}'; + public void write(final int b) { + super.write(b); } } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/30ef44b5/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerPrintWriter.java ---------------------------------------------------------------------- diff --git a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerPrintWriter.java b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerPrintWriter.java index 531a08b..e896329 100644 --- a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerPrintWriter.java +++ b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerPrintWriter.java @@ -34,6 +34,12 @@ import org.apache.logging.log4j.spi.ExtendedLogger; public class LoggerPrintWriter extends PrintWriter { private static final String FQCN = LoggerPrintWriter.class.getName(); + @SuppressWarnings("resource") + public LoggerPrintWriter(final ExtendedLogger logger, final boolean autoFlush, final String fqcn, + final Level level, final Marker marker) { + super(new LoggerWriter(logger, fqcn, level, marker), autoFlush); + } + public LoggerPrintWriter(final Logger logger, final Level level) { this((ExtendedLogger) logger, false, FQCN, level, null); } @@ -42,12 +48,10 @@ public class LoggerPrintWriter extends PrintWriter { this((ExtendedLogger) logger, false, FQCN, level, marker); } - public LoggerPrintWriter(final Writer writer, final Logger logger, final Level level) { - this(writer, false, (ExtendedLogger) logger, FQCN, level, null); - } - - public LoggerPrintWriter(final Writer writer, final Logger logger, final Level level, final Marker marker) { - this(writer, false, (ExtendedLogger) logger, FQCN, level, marker); + @SuppressWarnings("resource") + public LoggerPrintWriter(final Writer writer, final boolean autoFlush, final ExtendedLogger logger, final String fqcn, + final Level level, final Marker marker) { + super(new LoggerWriterFilter(writer, logger, fqcn, level, marker), autoFlush); } public LoggerPrintWriter(final Writer writer, final boolean autoFlush, final Logger logger, final Level level) { @@ -58,41 +62,40 @@ public class LoggerPrintWriter extends PrintWriter { this(writer, autoFlush, (ExtendedLogger) logger, FQCN, level, marker); } - @SuppressWarnings("resource") - public LoggerPrintWriter(final Writer writer, final boolean autoFlush, final ExtendedLogger logger, final String fqcn, - final Level level, final Marker marker) { - super(new LoggerWriterFilter(writer, logger, fqcn, level, marker), autoFlush); + public LoggerPrintWriter(final Writer writer, final Logger logger, final Level level) { + this(writer, false, (ExtendedLogger) logger, FQCN, level, null); } - @SuppressWarnings("resource") - public LoggerPrintWriter(final ExtendedLogger logger, final boolean autoFlush, final String fqcn, - final Level level, final Marker marker) { - super(new LoggerWriter(logger, fqcn, level, marker), autoFlush); + public LoggerPrintWriter(final Writer writer, final Logger logger, final Level level, final Marker marker) { + this(writer, false, (ExtendedLogger) logger, FQCN, level, marker); } @Override - public void write(final int c) { - super.write(c); + public LoggerPrintWriter append(final char c) { + super.append(c); + return this; } @Override - public void write(final char[] buf) { - super.write(buf); + public LoggerPrintWriter append(final CharSequence csq) { + super.append(csq); + return this; } @Override - public void write(final char[] buf, final int off, final int len) { - super.write(buf, off, len); + public LoggerPrintWriter append(final CharSequence csq, final int start, final int end) { + super.append(csq, start, end); + return this; } @Override - public void write(final String s) { - super.write(s); + public boolean checkError() { + return super.checkError(); } @Override - public void write(final String s, final int off, final int len) { - super.write(s, off, len); + public void close() { + super.close(); } @Override @@ -101,8 +104,15 @@ public class LoggerPrintWriter extends PrintWriter { } @Override - public void close() { - super.close(); + public LoggerPrintWriter format(final Locale l, final String format, final Object... args) { + super.format(l, format, args); + return this; + } + + @Override + public LoggerPrintWriter format(final String format, final Object... args) { + super.format(format, args); + return this; } @Override @@ -116,13 +126,13 @@ public class LoggerPrintWriter extends PrintWriter { } @Override - public void print(final int i) { - super.print(i); + public void print(final char[] s) { + super.print(s); } @Override - public void print(final long l) { - super.print(l); + public void print(final double d) { + super.print(d); } @Override @@ -131,13 +141,18 @@ public class LoggerPrintWriter extends PrintWriter { } @Override - public void print(final double d) { - super.print(d); + public void print(final int i) { + super.print(i); } @Override - public void print(final char[] s) { - super.print(s); + public void print(final long l) { + super.print(l); + } + + @Override + public void print(final Object obj) { + super.print(obj); } @Override @@ -146,8 +161,15 @@ public class LoggerPrintWriter extends PrintWriter { } @Override - public void print(final Object obj) { - super.print(obj); + public LoggerPrintWriter printf(final Locale l, final String format, final Object... args) { + super.printf(l, format, args); + return this; + } + + @Override + public LoggerPrintWriter printf(final String format, final Object... args) { + super.printf(format, args); + return this; } @Override @@ -166,12 +188,12 @@ public class LoggerPrintWriter extends PrintWriter { } @Override - public void println(final int x) { + public void println(final char[] x) { super.println(x); } @Override - public void println(final long x) { + public void println(final double x) { super.println(x); } @@ -181,17 +203,12 @@ public class LoggerPrintWriter extends PrintWriter { } @Override - public void println(final double x) { - super.println(x); - } - - @Override - public void println(final char[] x) { + public void println(final int x) { super.println(x); } @Override - public void println(final String x) { + public void println(final long x) { super.println(x); } @@ -201,54 +218,37 @@ public class LoggerPrintWriter extends PrintWriter { } @Override - public LoggerPrintWriter printf(final String format, final Object... args) { - super.printf(format, args); - return this; - } - - @Override - public LoggerPrintWriter printf(final Locale l, final String format, final Object... args) { - super.printf(l, format, args); - return this; - } - - @Override - public LoggerPrintWriter append(final char c) { - super.append(c); - return this; + public void println(final String x) { + super.println(x); } @Override - public LoggerPrintWriter append(final CharSequence csq) { - super.append(csq); - return this; + public String toString() { + return LoggerPrintWriter.class.getSimpleName() + "{stream=" + out + '}'; } @Override - public LoggerPrintWriter append(final CharSequence csq, final int start, final int end) { - super.append(csq, start, end); - return this; + public void write(final char[] buf) { + super.write(buf); } @Override - public LoggerPrintWriter format(final String format, final Object... args) { - super.format(format, args); - return this; + public void write(final char[] buf, final int off, final int len) { + super.write(buf, off, len); } @Override - public LoggerPrintWriter format(final Locale l, final String format, final Object... args) { - super.format(l, format, args); - return this; + public void write(final int c) { + super.write(c); } @Override - public boolean checkError() { - return super.checkError(); + public void write(final String s) { + super.write(s); } @Override - public String toString() { - return LoggerPrintWriter.class.getSimpleName() + "{stream=" + out + '}'; + public void write(final String s, final int off, final int len) { + super.write(s, off, len); } } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/30ef44b5/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerReader.java ---------------------------------------------------------------------- diff --git a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerReader.java b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerReader.java index 8432982..39fa6fe 100644 --- a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerReader.java +++ b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerReader.java @@ -39,6 +39,12 @@ public class LoggerReader extends FilterReader { private final CharStreamLogger logger; private final String fqcn; + public LoggerReader(final Reader reader, final ExtendedLogger logger, final String fqcn, final Level level, final Marker marker) { + super(reader); + this.logger = new CharStreamLogger(logger, level, marker); + this.fqcn = fqcn; + } + public LoggerReader(final Reader reader, final Logger logger, final Level level) { this(reader, (ExtendedLogger) logger, FQCN, level, null); } @@ -47,10 +53,10 @@ public class LoggerReader extends FilterReader { this(reader, (ExtendedLogger) logger, FQCN, level, marker); } - public LoggerReader(final Reader reader, final ExtendedLogger logger, final String fqcn, final Level level, final Marker marker) { - super(reader); - this.logger = new CharStreamLogger(logger, level, marker); - this.fqcn = fqcn; + @Override + public void close() throws IOException { + super.close(); + logger.close(fqcn); } @Override @@ -84,12 +90,6 @@ public class LoggerReader extends FilterReader { } @Override - public void close() throws IOException { - super.close(); - logger.close(fqcn); - } - - @Override public String toString() { return LoggerReader.class.getSimpleName() + "{stream=" + in + '}'; } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/30ef44b5/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerStreams.java ---------------------------------------------------------------------- diff --git a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerStreams.java b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerStreams.java index 887cc4d..82bc946 100644 --- a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerStreams.java +++ b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerStreams.java @@ -30,24 +30,47 @@ import org.apache.logging.log4j.Marker; public class LoggerStreams { - public static Builder trace(final Logger logger) { - return new Builder(logger, Level.TRACE, null); - } + public static class BufferedBuilder { + private final Logger logger; + private final Level level; + private final Marker marker; + private final int size; - public static Builder debug(final Logger logger) { - return new Builder(logger, Level.DEBUG, null); - } + BufferedBuilder(final Logger logger, final Level level, final Marker marker, final int size) { + this.logger = logger; + this.level = level; + this.marker = marker; + this.size = size; + } - public static Builder info(final Logger logger) { - return new Builder(logger, Level.INFO, null); - } + public LoggerBufferedInputStream create(final InputStream in) { + if (size > 0) { + return new LoggerBufferedInputStream(in, size, logger, level, marker); + } + return new LoggerBufferedInputStream(in, logger, level, marker); + } - public static Builder warn(final Logger logger) { - return new Builder(logger, Level.WARN, null); - } + public LoggerBufferedInputStream create(final InputStream in, final Charset charset) { + if (size > 0) { + return new LoggerBufferedInputStream(in, charset, size, logger, level, marker); + } + return new LoggerBufferedInputStream(in, charset, logger, level, marker); + } - public static Builder error(final Logger logger) { - return new Builder(logger, Level.ERROR, null); + public LoggerBufferedReader create(final Reader reader) { + if (size > 0) { + return new LoggerBufferedReader(reader, size, logger, level, marker); + } + return new LoggerBufferedReader(reader, logger, level, marker); + } + + public BufferedBuilder marker(final Marker marker) { + return new BufferedBuilder(logger, level, marker, size); + } + + public BufferedBuilder size(final int size) { + return new BufferedBuilder(logger, level, marker, size); + } } public static class Builder { @@ -61,14 +84,6 @@ public class LoggerStreams { this.marker = marker; } - public Builder marker(final Marker marker) { - return new Builder(logger, level, marker); - } - - public PrintingBuilder printing() { - return new PrintingBuilder(logger, level, marker, false); - } - public BufferedBuilder buffered() { return new BufferedBuilder(logger, level, marker, 0); } @@ -76,6 +91,14 @@ public class LoggerStreams { public LoggerWriterFilter create(final Writer writer) { return new LoggerWriterFilter(writer, logger, level, marker); } + + public Builder marker(final Marker marker) { + return new Builder(logger, level, marker); + } + + public PrintingBuilder printing() { + return new PrintingBuilder(logger, level, marker, false); + } } public static class PrintingBuilder { @@ -91,10 +114,6 @@ public class LoggerStreams { this.autoFlush = autoFlush; } - public PrintingBuilder marker(final Marker marker) { - return new PrintingBuilder(logger, level, marker, autoFlush); - } - public PrintingBuilder autoFlush() { return autoFlush(true); } @@ -103,10 +122,6 @@ public class LoggerStreams { return new PrintingBuilder(logger, level, marker, autoFlush); } - public LoggerPrintWriter create(final Writer writer) { - return new LoggerPrintWriter(writer, autoFlush, logger, level, marker); - } - public LoggerPrintStream create(final OutputStream out) { return new LoggerPrintStream(out, autoFlush, logger, level, marker); } @@ -119,48 +134,33 @@ public class LoggerStreams { throw new IllegalArgumentException("Invalid charset", e); } } - } - - public static class BufferedBuilder { - private final Logger logger; - private final Level level; - private final Marker marker; - private final int size; - BufferedBuilder(final Logger logger, final Level level, final Marker marker, final int size) { - this.logger = logger; - this.level = level; - this.marker = marker; - this.size = size; + public LoggerPrintWriter create(final Writer writer) { + return new LoggerPrintWriter(writer, autoFlush, logger, level, marker); } - public BufferedBuilder marker(final Marker marker) { - return new BufferedBuilder(logger, level, marker, size); + public PrintingBuilder marker(final Marker marker) { + return new PrintingBuilder(logger, level, marker, autoFlush); } + } - public BufferedBuilder size(final int size) { - return new BufferedBuilder(logger, level, marker, size); - } + public static Builder debug(final Logger logger) { + return new Builder(logger, Level.DEBUG, null); + } - public LoggerBufferedReader create(final Reader reader) { - if (size > 0) { - return new LoggerBufferedReader(reader, size, logger, level, marker); - } - return new LoggerBufferedReader(reader, logger, level, marker); - } + public static Builder error(final Logger logger) { + return new Builder(logger, Level.ERROR, null); + } - public LoggerBufferedInputStream create(final InputStream in) { - if (size > 0) { - return new LoggerBufferedInputStream(in, size, logger, level, marker); - } - return new LoggerBufferedInputStream(in, logger, level, marker); - } + public static Builder info(final Logger logger) { + return new Builder(logger, Level.INFO, null); + } - public LoggerBufferedInputStream create(final InputStream in, final Charset charset) { - if (size > 0) { - return new LoggerBufferedInputStream(in, charset, size, logger, level, marker); - } - return new LoggerBufferedInputStream(in, charset, logger, level, marker); - } + public static Builder trace(final Logger logger) { + return new Builder(logger, Level.TRACE, null); + } + + public static Builder warn(final Logger logger) { + return new Builder(logger, Level.WARN, null); } } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/30ef44b5/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerWriter.java ---------------------------------------------------------------------- diff --git a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerWriter.java b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerWriter.java index 8233d64..63cbfe8 100644 --- a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerWriter.java +++ b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerWriter.java @@ -37,22 +37,30 @@ public class LoggerWriter extends Writer { private final CharStreamLogger logger; private final String fqcn; - public LoggerWriter(final Logger logger, final Level level, final Marker marker) { - this((ExtendedLogger) logger, FQCN, level, marker); + public LoggerWriter(final ExtendedLogger logger, final String fqcn, final Level level, final Marker marker) { + this.logger = new CharStreamLogger(logger, level, marker); + this.fqcn = fqcn; } public LoggerWriter(final Logger logger, final Level level) { this((ExtendedLogger) logger, FQCN, level, null); } - public LoggerWriter(final ExtendedLogger logger, final String fqcn, final Level level, final Marker marker) { - this.logger = new CharStreamLogger(logger, level, marker); - this.fqcn = fqcn; + public LoggerWriter(final Logger logger, final Level level, final Marker marker) { + this((ExtendedLogger) logger, FQCN, level, marker); } @Override - public void write(final int c) throws IOException { - logger.put(fqcn, (char) c); + public void close() throws IOException { + logger.close(fqcn); + } + + @Override + public void flush() throws IOException { + } + + public String toString() { + return this.getClass().getSimpleName() + "[fqcn=" + fqcn + ", logger=" + logger + "]"; } @Override @@ -66,6 +74,11 @@ public class LoggerWriter extends Writer { } @Override + public void write(final int c) throws IOException { + logger.put(fqcn, (char) c); + } + + @Override public void write(final String str) throws IOException { logger.put(fqcn, str, 0, str.length()); } @@ -74,17 +87,4 @@ public class LoggerWriter extends Writer { public void write(final String str, final int off, final int len) throws IOException { logger.put(fqcn, str, off, len); } - - @Override - public void flush() throws IOException { - } - - @Override - public void close() throws IOException { - logger.close(fqcn); - } - - public String toString() { - return this.getClass().getSimpleName() + "[fqcn=" + fqcn + ", logger=" + logger + "]"; - } } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/30ef44b5/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerWriterFilter.java ---------------------------------------------------------------------- diff --git a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerWriterFilter.java b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerWriterFilter.java index 9b7e3a0..f583e5b 100644 --- a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerWriterFilter.java +++ b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerWriterFilter.java @@ -38,6 +38,13 @@ public class LoggerWriterFilter extends FilterWriter { private final CharStreamLogger logger; private final String fqcn; + public LoggerWriterFilter(final Writer out, final ExtendedLogger logger, final String fqcn, final Level level, + final Marker marker) { + super(out); + this.logger = new CharStreamLogger(logger, level, marker); + this.fqcn = fqcn; + } + public LoggerWriterFilter(final Writer out, final Logger logger, final Level level) { this(out, (ExtendedLogger) logger, FQCN, level, null); } @@ -46,17 +53,20 @@ public class LoggerWriterFilter extends FilterWriter { this(out, (ExtendedLogger) logger, FQCN, level, marker); } - public LoggerWriterFilter(final Writer out, final ExtendedLogger logger, final String fqcn, final Level level, - final Marker marker) { - super(out); - this.logger = new CharStreamLogger(logger, level, marker); - this.fqcn = fqcn; + @Override + public void close() throws IOException { + out.close(); + logger.close(fqcn); } @Override - public void write(final int c) throws IOException { - out.write(c); - logger.put(fqcn, (char) c); + public void flush() throws IOException { + out.flush(); + } + + @Override + public String toString() { + return LoggerWriterFilter.class.getSimpleName() + "{writer=" + out + '}'; } @Override @@ -72,6 +82,12 @@ public class LoggerWriterFilter extends FilterWriter { } @Override + public void write(final int c) throws IOException { + out.write(c); + logger.put(fqcn, (char) c); + } + + @Override public void write(final String str) throws IOException { out.write(str); logger.put(fqcn, str, 0, str.length()); @@ -82,20 +98,4 @@ public class LoggerWriterFilter extends FilterWriter { out.write(str, off, len); logger.put(fqcn, str, off, len); } - - @Override - public void flush() throws IOException { - out.flush(); - } - - @Override - public void close() throws IOException { - out.close(); - logger.close(fqcn); - } - - @Override - public String toString() { - return LoggerWriterFilter.class.getSimpleName() + "{writer=" + out + '}'; - } } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/30ef44b5/log4j-streams/src/main/java/org/apache/logging/log4j/streams/util/ByteStreamLogger.java ---------------------------------------------------------------------- diff --git a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/util/ByteStreamLogger.java b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/util/ByteStreamLogger.java index 06a7cde..655497b 100644 --- a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/util/ByteStreamLogger.java +++ b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/util/ByteStreamLogger.java @@ -28,8 +28,33 @@ import org.apache.logging.log4j.Marker; import org.apache.logging.log4j.spi.ExtendedLogger; public class ByteStreamLogger { - private static final int BUFFER_SIZE = 1024; + private class ByteBufferInputStream extends InputStream { + + @Override + public int read() throws IOException { + buf.flip(); + int result = -1; + if (buf.limit() > 0) { + result = buf.get() & 0xFF; + } + buf.compact(); + return result; + } + + @Override + public int read(final byte[] bytes, final int off, final int len) throws IOException { + buf.flip(); + int result = -1; + if (buf.limit() > 0) { + result = Math.min(len, buf.limit()); + buf.get(bytes, off, result); + } + buf.compact(); + return result; + } + } + private static final int BUFFER_SIZE = 1024; private final ExtendedLogger logger; private final Level level; private final Marker marker; @@ -38,6 +63,7 @@ public class ByteStreamLogger { private final char[] msgBuf = new char[BUFFER_SIZE]; private final StringBuilder msg = new StringBuilder(); private boolean closed; + private final ByteBuffer buf = ByteBuffer.allocate(BUFFER_SIZE); public ByteStreamLogger(final ExtendedLogger logger, final Level level, final Marker marker, final Charset charset) { @@ -48,35 +74,6 @@ public class ByteStreamLogger { reader = new InputStreamReader(in, charset); } - public void put(final String fqcn, final int b) throws IOException { - if (b >= 0) { - synchronized (msg) { - buf.put((byte) (b & 0xFF)); - extractMessages(fqcn); - } - } else { - logEnd(fqcn); - } - } - - public void put(final String fqcn, final byte[] b, int off, int len) throws IOException { - if (len >= 0) { - synchronized (msg) { - while (len > buf.remaining()) { - final int remaining = buf.remaining(); - buf.put(b, off, remaining); - len -= remaining; - off += remaining; - extractMessages(fqcn); - } - buf.put(b, off, len); - extractMessages(fqcn); - } - } else { - logEnd(fqcn); - } - } - public void close(final String fqcn) { synchronized (msg) { closed = true; @@ -109,42 +106,45 @@ public class ByteStreamLogger { read = reader.read(msgBuf); } } - - private void logEnd(final String fqcn) { - if (msg.length() > 0) { - log(fqcn); - } - } private void log(final String fqcn) { // convert to string now so async loggers work logger.logIfEnabled(fqcn, level, marker, msg.toString()); msg.setLength(0); } + + private void logEnd(final String fqcn) { + if (msg.length() > 0) { + log(fqcn); + } + } - private class ByteBufferInputStream extends InputStream { - - @Override - public int read() throws IOException { - buf.flip(); - int result = -1; - if (buf.limit() > 0) { - result = buf.get() & 0xFF; + public void put(final String fqcn, final byte[] b, int off, int len) throws IOException { + if (len >= 0) { + synchronized (msg) { + while (len > buf.remaining()) { + final int remaining = buf.remaining(); + buf.put(b, off, remaining); + len -= remaining; + off += remaining; + extractMessages(fqcn); + } + buf.put(b, off, len); + extractMessages(fqcn); } - buf.compact(); - return result; + } else { + logEnd(fqcn); } + } - @Override - public int read(final byte[] bytes, final int off, final int len) throws IOException { - buf.flip(); - int result = -1; - if (buf.limit() > 0) { - result = Math.min(len, buf.limit()); - buf.get(bytes, off, result); + public void put(final String fqcn, final int b) throws IOException { + if (b >= 0) { + synchronized (msg) { + buf.put((byte) (b & 0xFF)); + extractMessages(fqcn); } - buf.compact(); - return result; + } else { + logEnd(fqcn); } } } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/30ef44b5/log4j-streams/src/main/java/org/apache/logging/log4j/streams/util/CharStreamLogger.java ---------------------------------------------------------------------- diff --git a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/util/CharStreamLogger.java b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/util/CharStreamLogger.java index 3eb0851..71b63ce 100644 --- a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/util/CharStreamLogger.java +++ b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/util/CharStreamLogger.java @@ -36,27 +36,25 @@ public class CharStreamLogger { this.marker = marker; } - public void put(final String fqcn, final int c) { - if (c >= 0) { - synchronized (msg) { - if (closed) { - return; - } - switch (c) { - case '\n': - log(fqcn); - break; - case '\r': - break; - default: - msg.append((char) c); - } - } - } else { + public void close(final String fqcn) { + synchronized (msg) { + closed = true; logEnd(fqcn); } } + private void log(final String fqcn) { + // convert to string now so async loggers work + logger.logIfEnabled(fqcn, level, marker, msg.toString()); + msg.setLength(0); + } + + private void logEnd(final String fqcn) { + if (msg.length() > 0) { + log(fqcn); + } + } + public void put(final String fqcn, final char[] cbuf, final int off, final int len) { put(fqcn, CharBuffer.wrap(cbuf), off, len); } @@ -89,22 +87,24 @@ public class CharStreamLogger { } } - public void close(final String fqcn) { - synchronized (msg) { - closed = true; + public void put(final String fqcn, final int c) { + if (c >= 0) { + synchronized (msg) { + if (closed) { + return; + } + switch (c) { + case '\n': + log(fqcn); + break; + case '\r': + break; + default: + msg.append((char) c); + } + } + } else { logEnd(fqcn); } } - - private void logEnd(final String fqcn) { - if (msg.length() > 0) { - log(fqcn); - } - } - - private void log(final String fqcn) { - // convert to string now so async loggers work - logger.logIfEnabled(fqcn, level, marker, msg.toString()); - msg.setLength(0); - } } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/30ef44b5/log4j-streams/src/test/java/org/apache/logging/log4j/streams/AbstractLoggerWriterTest.java ---------------------------------------------------------------------- diff --git a/log4j-streams/src/test/java/org/apache/logging/log4j/streams/AbstractLoggerWriterTest.java b/log4j-streams/src/test/java/org/apache/logging/log4j/streams/AbstractLoggerWriterTest.java index 5d727cb..f62360f 100644 --- a/log4j-streams/src/test/java/org/apache/logging/log4j/streams/AbstractLoggerWriterTest.java +++ b/log4j-streams/src/test/java/org/apache/logging/log4j/streams/AbstractLoggerWriterTest.java @@ -44,33 +44,39 @@ public abstract class AbstractLoggerWriterTest extends AbstractStreamTest { protected abstract Writer createWriterWrapper(); @Test - public void testWrite_CharArray() throws Exception { - final char[] chars = FIRST.toCharArray(); - writer.write(chars); + public void testClose_HasRemainingData() throws IOException { + writer.write(FIRST); assertMessages(); - writer.write('\n'); + writer.close(); assertMessages(FIRST); if (wrapped != null) { - assertEquals(FIRST + '\n', wrapped.toString()); + assertEquals(FIRST, wrapped.toString()); } } @Test - public void testWrite_CharArray_Offset_Length() throws Exception { - final char[] chars = FIRST.toCharArray(); - final int middle = chars.length / 2; - final int length = chars.length - middle; - final String right = new String(chars, middle, length); - writer.write(chars, middle, length); + public void testClose_NoRemainingData() throws IOException { + writer.close(); assertMessages(); - writer.write('\n'); - assertMessages(right); if (wrapped != null) { - assertEquals(FIRST.substring(middle, FIRST.length()) + '\n', wrapped.toString()); + assertEquals("", wrapped.toString()); } } @Test + public void testFlush() throws IOException { + final OutputStream out = EasyMock.createMock(OutputStream.class); + out.flush(); // expect the flush to come through to the mocked OutputStream + out.close(); + replay(out); + + final LoggerOutputStream los = new LoggerOutputStream(out, getLogger(), LEVEL); + los.flush(); + los.close(); + verify(out); + } + + @Test public void testWrite_Character() throws Exception { for (final char c : FIRST.toCharArray()) { writer.write(c); @@ -84,55 +90,49 @@ public abstract class AbstractLoggerWriterTest extends AbstractStreamTest { } @Test - public void testWrite_IgnoresWindowsNewline() throws IOException { - writer.write(FIRST + "\r\n"); - writer.write(LAST); - writer.close(); - assertMessages(FIRST, LAST); + public void testWrite_CharArray() throws Exception { + final char[] chars = FIRST.toCharArray(); + writer.write(chars); + assertMessages(); + writer.write('\n'); + assertMessages(FIRST); if (wrapped != null) { - assertEquals(FIRST + "\r\n" + LAST, wrapped.toString()); + assertEquals(FIRST + '\n', wrapped.toString()); } } @Test - public void testWrite_MultipleLines() throws IOException { - writer.write(FIRST + '\n' + LAST + '\n'); - assertMessages(FIRST, LAST); + public void testWrite_CharArray_Offset_Length() throws Exception { + final char[] chars = FIRST.toCharArray(); + final int middle = chars.length / 2; + final int length = chars.length - middle; + final String right = new String(chars, middle, length); + writer.write(chars, middle, length); + assertMessages(); + writer.write('\n'); + assertMessages(right); if (wrapped != null) { - assertEquals(FIRST + '\n' + LAST + '\n', wrapped.toString()); + assertEquals(FIRST.substring(middle, FIRST.length()) + '\n', wrapped.toString()); } } @Test - public void testFlush() throws IOException { - final OutputStream out = EasyMock.createMock(OutputStream.class); - out.flush(); // expect the flush to come through to the mocked OutputStream - out.close(); - replay(out); - - final LoggerOutputStream los = new LoggerOutputStream(out, getLogger(), LEVEL); - los.flush(); - los.close(); - verify(out); - } - - @Test - public void testClose_NoRemainingData() throws IOException { + public void testWrite_IgnoresWindowsNewline() throws IOException { + writer.write(FIRST + "\r\n"); + writer.write(LAST); writer.close(); - assertMessages(); + assertMessages(FIRST, LAST); if (wrapped != null) { - assertEquals("", wrapped.toString()); + assertEquals(FIRST + "\r\n" + LAST, wrapped.toString()); } } @Test - public void testClose_HasRemainingData() throws IOException { - writer.write(FIRST); - assertMessages(); - writer.close(); - assertMessages(FIRST); + public void testWrite_MultipleLines() throws IOException { + writer.write(FIRST + '\n' + LAST + '\n'); + assertMessages(FIRST, LAST); if (wrapped != null) { - assertEquals(FIRST, wrapped.toString()); + assertEquals(FIRST + '\n' + LAST + '\n', wrapped.toString()); } } } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/30ef44b5/log4j-streams/src/test/java/org/apache/logging/log4j/streams/AbstractStreamTest.java ---------------------------------------------------------------------- diff --git a/log4j-streams/src/test/java/org/apache/logging/log4j/streams/AbstractStreamTest.java b/log4j-streams/src/test/java/org/apache/logging/log4j/streams/AbstractStreamTest.java index 6422309..17d5c72 100644 --- a/log4j-streams/src/test/java/org/apache/logging/log4j/streams/AbstractStreamTest.java +++ b/log4j-streams/src/test/java/org/apache/logging/log4j/streams/AbstractStreamTest.java @@ -31,23 +31,18 @@ import org.junit.Before; import org.junit.ClassRule; public abstract class AbstractStreamTest { + protected static Logger getLogger() { + return ctx.getLogger("UnitTestLogger"); + } protected final static String NEWLINE = System.getProperty("line.separator"); protected final static Level LEVEL = Level.ERROR; protected final static String FIRST = "first"; + protected final static String LAST = "last"; @ClassRule public static InitialLoggerContext ctx = new InitialLoggerContext("log4j2-streams-unit-test.xml"); - protected static Logger getLogger() { - return ctx.getLogger("UnitTestLogger"); - } - - @Before - public void clearAppender() { - ((ListAppender) ctx.getAppender("UnitTest")).clear(); - } - protected void assertMessages(final String... messages) { final List<String> actualMsgs = ((ListAppender) ctx.getAppender("UnitTest")).getMessages(); assertEquals("Unexpected number of results.", messages.length, actualMsgs.size()); @@ -56,4 +51,9 @@ public abstract class AbstractStreamTest { assertThat(actualMsgs.get(i), startsWith(start)); } } + + @Before + public void clearAppender() { + ((ListAppender) ctx.getAppender("UnitTest")).clear(); + } } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/30ef44b5/log4j-streams/src/test/java/org/apache/logging/log4j/streams/LoggerBufferedInputStreamCallerInfoTest.java ---------------------------------------------------------------------- diff --git a/log4j-streams/src/test/java/org/apache/logging/log4j/streams/LoggerBufferedInputStreamCallerInfoTest.java b/log4j-streams/src/test/java/org/apache/logging/log4j/streams/LoggerBufferedInputStreamCallerInfoTest.java index b8206c8..07df463 100644 --- a/log4j-streams/src/test/java/org/apache/logging/log4j/streams/LoggerBufferedInputStreamCallerInfoTest.java +++ b/log4j-streams/src/test/java/org/apache/logging/log4j/streams/LoggerBufferedInputStreamCallerInfoTest.java @@ -26,10 +26,12 @@ public class LoggerBufferedInputStreamCallerInfoTest extends LoggerStreamsCaller private LoggerBufferedInputStream logIn; - @Before - public void setupStreams() { - final InputStream srcInputStream = new ByteArrayInputStream("a\nb\nc\nd".getBytes()); - logIn = new LoggerBufferedInputStream(srcInputStream, getLogger(), LEVEL); + @Test + public void close() throws Exception { + logIn.read(); + assertMessages("before close", 3, "close"); + logIn.close(); + assertMessages("after close", 4, "close"); } @Test @@ -56,11 +58,9 @@ public class LoggerBufferedInputStreamCallerInfoTest extends LoggerStreamsCaller logIn.close(); } - @Test - public void close() throws Exception { - logIn.read(); - assertMessages("before close", 3, "close"); - logIn.close(); - assertMessages("after close", 4, "close"); + @Before + public void setupStreams() { + final InputStream srcInputStream = new ByteArrayInputStream("a\nb\nc\nd".getBytes()); + logIn = new LoggerBufferedInputStream(srcInputStream, getLogger(), LEVEL); } } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/30ef44b5/log4j-streams/src/test/java/org/apache/logging/log4j/streams/LoggerBufferedReaderCallerInfoTest.java ---------------------------------------------------------------------- diff --git a/log4j-streams/src/test/java/org/apache/logging/log4j/streams/LoggerBufferedReaderCallerInfoTest.java b/log4j-streams/src/test/java/org/apache/logging/log4j/streams/LoggerBufferedReaderCallerInfoTest.java index 3d3b927..44850dd 100644 --- a/log4j-streams/src/test/java/org/apache/logging/log4j/streams/LoggerBufferedReaderCallerInfoTest.java +++ b/log4j-streams/src/test/java/org/apache/logging/log4j/streams/LoggerBufferedReaderCallerInfoTest.java @@ -28,10 +28,12 @@ public class LoggerBufferedReaderCallerInfoTest extends LoggerStreamsCallerInfoT LoggerBufferedReader logReader; - @Before - public void setupReader() { - final Reader srcReader = new StringReader("a\nb\nc\nd"); - logReader = new LoggerBufferedReader(srcReader, getLogger(), Level.WARN); + @Test + public void close() throws Exception { + logReader.readLine(); + assertMessages("before close", 3, "close"); + logReader.close(); + assertMessages("after close", 4, "close"); } @Test @@ -74,11 +76,9 @@ public class LoggerBufferedReaderCallerInfoTest extends LoggerStreamsCallerInfoT logReader.close(); } - @Test - public void close() throws Exception { - logReader.readLine(); - assertMessages("before close", 3, "close"); - logReader.close(); - assertMessages("after close", 4, "close"); + @Before + public void setupReader() { + final Reader srcReader = new StringReader("a\nb\nc\nd"); + logReader = new LoggerBufferedReader(srcReader, getLogger(), Level.WARN); } } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/30ef44b5/log4j-streams/src/test/java/org/apache/logging/log4j/streams/LoggerInputStreamCallerInfoTest.java ---------------------------------------------------------------------- diff --git a/log4j-streams/src/test/java/org/apache/logging/log4j/streams/LoggerInputStreamCallerInfoTest.java b/log4j-streams/src/test/java/org/apache/logging/log4j/streams/LoggerInputStreamCallerInfoTest.java index 5942217..1c68548 100644 --- a/log4j-streams/src/test/java/org/apache/logging/log4j/streams/LoggerInputStreamCallerInfoTest.java +++ b/log4j-streams/src/test/java/org/apache/logging/log4j/streams/LoggerInputStreamCallerInfoTest.java @@ -27,12 +27,6 @@ public class LoggerInputStreamCallerInfoTest extends LoggerStreamsCallerInfoTest private LoggerInputStream logIn; - @Before - public void setupStreams() { - final InputStream srcInputStream = new ByteArrayInputStream("a\nb\nc\nd".getBytes()); - logIn = new LoggerInputStream(srcInputStream, getLogger(), Level.WARN); - } - @Test public void read() throws Exception { logIn.read(); @@ -51,4 +45,10 @@ public class LoggerInputStreamCallerInfoTest extends LoggerStreamsCallerInfoTest logIn.close(); assertMessages("after close size", 4, "read"); } + + @Before + public void setupStreams() { + final InputStream srcInputStream = new ByteArrayInputStream("a\nb\nc\nd".getBytes()); + logIn = new LoggerInputStream(srcInputStream, getLogger(), Level.WARN); + } }
