Repository: logging-log4j2 Updated Branches: refs/heads/master bb5d55b7d -> 49aaf52f7
Move the two classes in org.apache.logging.log4j.streams.util to org.apache.logging.log4j.streams. Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/49aaf52f Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/49aaf52f Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/49aaf52f Branch: refs/heads/master Commit: 49aaf52f79cb271875f42d02d9030d7b3869d480 Parents: bb5d55b Author: Gary Gregory <[email protected]> Authored: Wed Sep 3 00:51:16 2014 -0400 Committer: Gary Gregory <[email protected]> Committed: Wed Sep 3 00:51:16 2014 -0400 ---------------------------------------------------------------------- .../logging/log4j/streams/ByteStreamLogger.java | 152 +++++++++++++++++++ .../logging/log4j/streams/CharStreamLogger.java | 110 ++++++++++++++ .../log4j/streams/LoggerFilterOutputStream.java | 1 - .../log4j/streams/LoggerFilterWriter.java | 1 - .../log4j/streams/LoggerInputStream.java | 1 - .../log4j/streams/LoggerOutputStream.java | 1 - .../logging/log4j/streams/LoggerReader.java | 1 - .../logging/log4j/streams/LoggerWriter.java | 1 - .../log4j/streams/util/ByteStreamLogger.java | 152 ------------------- .../log4j/streams/util/CharStreamLogger.java | 110 -------------- 10 files changed, 262 insertions(+), 268 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/49aaf52f/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 new file mode 100644 index 0000000..cc3877f --- /dev/null +++ b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/ByteStreamLogger.java @@ -0,0 +1,152 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.logging.log4j.streams; + +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.nio.ByteBuffer; +import java.nio.charset.Charset; + +import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.Marker; +import org.apache.logging.log4j.spi.ExtendedLogger; + +class ByteStreamLogger { + private class ByteBufferInputStream extends InputStream { + + @Override + public int read() throws IOException { + ByteStreamLogger.this.buf.flip(); + int result = -1; + if (ByteStreamLogger.this.buf.limit() > 0) { + result = ByteStreamLogger.this.buf.get() & 0xFF; + } + ByteStreamLogger.this.buf.compact(); + return result; + } + + @Override + public int read(final byte[] bytes, final int off, final int len) throws IOException { + ByteStreamLogger.this.buf.flip(); + int result = -1; + if (ByteStreamLogger.this.buf.limit() > 0) { + result = Math.min(len, ByteStreamLogger.this.buf.limit()); + ByteStreamLogger.this.buf.get(bytes, off, result); + } + ByteStreamLogger.this.buf.compact(); + return result; + } + } + + private static final int BUFFER_SIZE = 1024; + private final ExtendedLogger logger; + private final Level level; + private final Marker marker; + private final ByteBufferInputStream inputStream; + private final InputStreamReader reader; + 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) { + this.logger = logger; + this.level = level; + this.marker = marker; + this.inputStream = new ByteBufferInputStream(); + this.reader = new InputStreamReader(this.inputStream, charset); + } + + public void close(final String fqcn) { + synchronized (this.msg) { + this.closed = true; + logEnd(fqcn); +// in.close(); + } + } + + private void extractMessages(final String fqcn) throws IOException { + if (this.closed) { + return; + } + int read = this.reader.read(this.msgBuf); + while (read > 0) { + int off = 0; + for (int pos = 0; pos < read; pos++) { + switch (this.msgBuf[pos]) { + case '\r': + this.msg.append(this.msgBuf, off, pos - off); + off = pos + 1; + break; + case '\n': + this.msg.append(this.msgBuf, off, pos - off); + off = pos + 1; + log(fqcn); + break; + } + } + this.msg.append(this.msgBuf, off, read - off); + read = this.reader.read(this.msgBuf); + } + } + + private void log(final String fqcn) { + // convert to string now so async loggers work + this.logger.logIfEnabled(fqcn, this.level, this.marker, this.msg.toString()); + this.msg.setLength(0); + } + + private void logEnd(final String fqcn) { + if (this.msg.length() > 0) { + log(fqcn); + } + } + + public void put(final String fqcn, final byte[] b, final int off, final int len) throws IOException { + int curOff = off; + int curLen = len; + if (curLen >= 0) { + synchronized (this.msg) { + while (curLen > this.buf.remaining()) { + final int remaining = this.buf.remaining(); + this.buf.put(b, curOff, remaining); + curLen -= remaining; + curOff += remaining; + extractMessages(fqcn); + } + this.buf.put(b, curOff, curLen); + extractMessages(fqcn); + } + } else { + logEnd(fqcn); + } + } + + public void put(final String fqcn, final int b) throws IOException { + if (b >= 0) { + synchronized (this.msg) { + this.buf.put((byte) (b & 0xFF)); + extractMessages(fqcn); + } + } else { + logEnd(fqcn); + } + } +} http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/49aaf52f/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 new file mode 100644 index 0000000..4f66833 --- /dev/null +++ b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/CharStreamLogger.java @@ -0,0 +1,110 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.logging.log4j.streams; + +import java.nio.CharBuffer; + +import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.Marker; +import org.apache.logging.log4j.spi.ExtendedLogger; + +class CharStreamLogger { + private final ExtendedLogger logger; + private final Level level; + private final Marker marker; + private final StringBuilder msg = new StringBuilder(); + private boolean closed = false; + + public CharStreamLogger(final ExtendedLogger logger, final Level level, final Marker marker) { + this.logger = logger; + this.level = level; + this.marker = marker; + } + + public void close(final String fqcn) { + synchronized (this.msg) { + this.closed = true; + logEnd(fqcn); + } + } + + private void log(final String fqcn) { + // convert to string now so async loggers work + this.logger.logIfEnabled(fqcn, this.level, this.marker, this.msg.toString()); + this.msg.setLength(0); + } + + private void logEnd(final String fqcn) { + if (this.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); + } + + public void put(final String fqcn, final CharSequence str, final int off, final int len) { + if (len >= 0) { + synchronized (this.msg) { + if (this.closed) { + return; + } + int start = off; + final int end = off + len; + for (int pos = off; pos < end; pos++) { + final char c = str.charAt(pos); + switch (c) { + case '\r': + case '\n': + this.msg.append(str, start, pos); + start = pos + 1; + if (c == '\n') { + log(fqcn); + } + break; + } + } + this.msg.append(str, start, end); + } + } else { + logEnd(fqcn); + } + } + + public void put(final String fqcn, final int c) { + if (c >= 0) { + synchronized (this.msg) { + if (this.closed) { + return; + } + switch (c) { + case '\n': + log(fqcn); + break; + case '\r': + break; + default: + this.msg.append((char) c); + } + } + } else { + logEnd(fqcn); + } + } +} http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/49aaf52f/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerFilterOutputStream.java ---------------------------------------------------------------------- diff --git a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerFilterOutputStream.java b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerFilterOutputStream.java index 96ab4e1..3dba3df 100644 --- a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerFilterOutputStream.java +++ b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerFilterOutputStream.java @@ -25,7 +25,6 @@ import java.nio.charset.Charset; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.Marker; import org.apache.logging.log4j.spi.ExtendedLogger; -import org.apache.logging.log4j.streams.util.ByteStreamLogger; /** * Logs each line written to a pre-defined level. Can also be configured with a Marker. This class provides an interface http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/49aaf52f/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerFilterWriter.java ---------------------------------------------------------------------- diff --git a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerFilterWriter.java b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerFilterWriter.java index 2659c04..7b076eb 100644 --- a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerFilterWriter.java +++ b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/LoggerFilterWriter.java @@ -24,7 +24,6 @@ import java.io.Writer; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.Marker; import org.apache.logging.log4j.spi.ExtendedLogger; -import org.apache.logging.log4j.streams.util.CharStreamLogger; /** * Logs each line written to a pre-defined level. Can also be configured with a Marker. This class provides an interface http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/49aaf52f/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 64eb202..b4f5823 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 @@ -25,7 +25,6 @@ import java.nio.charset.Charset; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.Marker; import org.apache.logging.log4j.spi.ExtendedLogger; -import org.apache.logging.log4j.streams.util.ByteStreamLogger; /** * Logs each line read to a pre-defined level. Can also be configured with a Marker. http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/49aaf52f/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 836a20b..f75e03e 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 @@ -24,7 +24,6 @@ import java.nio.charset.Charset; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.Marker; import org.apache.logging.log4j.spi.ExtendedLogger; -import org.apache.logging.log4j.streams.util.ByteStreamLogger; /** * Logs each line written to a pre-defined level. Can also be configured with a Marker. This class provides an interface http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/49aaf52f/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 5e7ccd8..d190ef9 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 @@ -25,7 +25,6 @@ import java.nio.CharBuffer; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.Marker; import org.apache.logging.log4j.spi.ExtendedLogger; -import org.apache.logging.log4j.streams.util.CharStreamLogger; /** * Logs each line written to a pre-defined level. Can also be configured with a Marker. This class provides an interface http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/49aaf52f/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 68fdc83..e19a675 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 @@ -23,7 +23,6 @@ import java.io.Writer; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.Marker; import org.apache.logging.log4j.spi.ExtendedLogger; -import org.apache.logging.log4j.streams.util.CharStreamLogger; /** * Logs each line written to a pre-defined level. Can also be configured with a Marker. This class provides an interface http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/49aaf52f/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 deleted file mode 100644 index 106934c..0000000 --- a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/util/ByteStreamLogger.java +++ /dev/null @@ -1,152 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.logging.log4j.streams.util; - -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.nio.ByteBuffer; -import java.nio.charset.Charset; - -import org.apache.logging.log4j.Level; -import org.apache.logging.log4j.Marker; -import org.apache.logging.log4j.spi.ExtendedLogger; - -public class ByteStreamLogger { - private class ByteBufferInputStream extends InputStream { - - @Override - public int read() throws IOException { - ByteStreamLogger.this.buf.flip(); - int result = -1; - if (ByteStreamLogger.this.buf.limit() > 0) { - result = ByteStreamLogger.this.buf.get() & 0xFF; - } - ByteStreamLogger.this.buf.compact(); - return result; - } - - @Override - public int read(final byte[] bytes, final int off, final int len) throws IOException { - ByteStreamLogger.this.buf.flip(); - int result = -1; - if (ByteStreamLogger.this.buf.limit() > 0) { - result = Math.min(len, ByteStreamLogger.this.buf.limit()); - ByteStreamLogger.this.buf.get(bytes, off, result); - } - ByteStreamLogger.this.buf.compact(); - return result; - } - } - - private static final int BUFFER_SIZE = 1024; - private final ExtendedLogger logger; - private final Level level; - private final Marker marker; - private final ByteBufferInputStream inputStream; - private final InputStreamReader reader; - 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) { - this.logger = logger; - this.level = level; - this.marker = marker; - this.inputStream = new ByteBufferInputStream(); - this.reader = new InputStreamReader(this.inputStream, charset); - } - - public void close(final String fqcn) { - synchronized (this.msg) { - this.closed = true; - logEnd(fqcn); -// in.close(); - } - } - - private void extractMessages(final String fqcn) throws IOException { - if (this.closed) { - return; - } - int read = this.reader.read(this.msgBuf); - while (read > 0) { - int off = 0; - for (int pos = 0; pos < read; pos++) { - switch (this.msgBuf[pos]) { - case '\r': - this.msg.append(this.msgBuf, off, pos - off); - off = pos + 1; - break; - case '\n': - this.msg.append(this.msgBuf, off, pos - off); - off = pos + 1; - log(fqcn); - break; - } - } - this.msg.append(this.msgBuf, off, read - off); - read = this.reader.read(this.msgBuf); - } - } - - private void log(final String fqcn) { - // convert to string now so async loggers work - this.logger.logIfEnabled(fqcn, this.level, this.marker, this.msg.toString()); - this.msg.setLength(0); - } - - private void logEnd(final String fqcn) { - if (this.msg.length() > 0) { - log(fqcn); - } - } - - public void put(final String fqcn, final byte[] b, final int off, final int len) throws IOException { - int curOff = off; - int curLen = len; - if (curLen >= 0) { - synchronized (this.msg) { - while (curLen > this.buf.remaining()) { - final int remaining = this.buf.remaining(); - this.buf.put(b, curOff, remaining); - curLen -= remaining; - curOff += remaining; - extractMessages(fqcn); - } - this.buf.put(b, curOff, curLen); - extractMessages(fqcn); - } - } else { - logEnd(fqcn); - } - } - - public void put(final String fqcn, final int b) throws IOException { - if (b >= 0) { - synchronized (this.msg) { - this.buf.put((byte) (b & 0xFF)); - extractMessages(fqcn); - } - } else { - logEnd(fqcn); - } - } -} http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/49aaf52f/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 deleted file mode 100644 index ffe2c17..0000000 --- a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/util/CharStreamLogger.java +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.logging.log4j.streams.util; - -import java.nio.CharBuffer; - -import org.apache.logging.log4j.Level; -import org.apache.logging.log4j.Marker; -import org.apache.logging.log4j.spi.ExtendedLogger; - -public class CharStreamLogger { - private final ExtendedLogger logger; - private final Level level; - private final Marker marker; - private final StringBuilder msg = new StringBuilder(); - private boolean closed = false; - - public CharStreamLogger(final ExtendedLogger logger, final Level level, final Marker marker) { - this.logger = logger; - this.level = level; - this.marker = marker; - } - - public void close(final String fqcn) { - synchronized (this.msg) { - this.closed = true; - logEnd(fqcn); - } - } - - private void log(final String fqcn) { - // convert to string now so async loggers work - this.logger.logIfEnabled(fqcn, this.level, this.marker, this.msg.toString()); - this.msg.setLength(0); - } - - private void logEnd(final String fqcn) { - if (this.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); - } - - public void put(final String fqcn, final CharSequence str, final int off, final int len) { - if (len >= 0) { - synchronized (this.msg) { - if (this.closed) { - return; - } - int start = off; - final int end = off + len; - for (int pos = off; pos < end; pos++) { - final char c = str.charAt(pos); - switch (c) { - case '\r': - case '\n': - this.msg.append(str, start, pos); - start = pos + 1; - if (c == '\n') { - log(fqcn); - } - break; - } - } - this.msg.append(str, start, end); - } - } else { - logEnd(fqcn); - } - } - - public void put(final String fqcn, final int c) { - if (c >= 0) { - synchronized (this.msg) { - if (this.closed) { - return; - } - switch (c) { - case '\n': - log(fqcn); - break; - case '\r': - break; - default: - this.msg.append((char) c); - } - } - } else { - logEnd(fqcn); - } - } -}
