We use util and as package name for Util gardgets, so use util instead of helpers.
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/a497e405 Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/a497e405 Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/a497e405 Branch: refs/heads/LOG4J2-608 Commit: a497e405f0b85c7e952d835293f2043d0b95d5c9 Parents: 3fd8320 Author: Gary Gregory <[email protected]> Authored: Tue Sep 2 09:25:48 2014 -0400 Committer: Gary Gregory <[email protected]> Committed: Tue Sep 2 09:25:48 2014 -0400 ---------------------------------------------------------------------- .../log4j/streams/LoggerInputStream.java | 2 +- .../log4j/streams/LoggerOutputStream.java | 2 +- .../logging/log4j/streams/LoggerReader.java | 2 +- .../logging/log4j/streams/LoggerWriter.java | 2 +- .../log4j/streams/helpers/ByteStreamLogger.java | 150 ------------------- .../log4j/streams/helpers/CharStreamLogger.java | 110 -------------- .../log4j/streams/util/ByteStreamLogger.java | 150 +++++++++++++++++++ .../log4j/streams/util/CharStreamLogger.java | 110 ++++++++++++++ 8 files changed, 264 insertions(+), 264 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/a497e405/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 61ed149..f36dab6 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 @@ -26,7 +26,7 @@ import org.apache.logging.log4j.Level; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Marker; import org.apache.logging.log4j.spi.ExtendedLogger; -import org.apache.logging.log4j.streams.helpers.ByteStreamLogger; +import org.apache.logging.log4j.streams.util.ByteStreamLogger; /** * Input stream that logs each line read to a pre-defined level. Can also be configured with a http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/a497e405/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 f6a504b..609fad2 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 @@ -25,7 +25,7 @@ import org.apache.logging.log4j.Level; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Marker; import org.apache.logging.log4j.spi.ExtendedLogger; -import org.apache.logging.log4j.streams.helpers.ByteStreamLogger; +import org.apache.logging.log4j.streams.util.ByteStreamLogger; /** * Output stream that logs each line written to a pre-defined level. Can also be configured with a http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/a497e405/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 74e7c63..8432982 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 @@ -26,7 +26,7 @@ import org.apache.logging.log4j.Level; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Marker; import org.apache.logging.log4j.spi.ExtendedLogger; -import org.apache.logging.log4j.streams.helpers.CharStreamLogger; +import org.apache.logging.log4j.streams.util.CharStreamLogger; /** * Writer that logs each line written to a pre-defined level. Can also be configured with a Marker. http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/a497e405/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 98e6f8e..30915d6 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 @@ -24,7 +24,7 @@ import org.apache.logging.log4j.Level; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Marker; import org.apache.logging.log4j.spi.ExtendedLogger; -import org.apache.logging.log4j.streams.helpers.CharStreamLogger; +import org.apache.logging.log4j.streams.util.CharStreamLogger; /** * Writer that logs each line written to a pre-defined level. Can also be configured with a Marker. http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/a497e405/log4j-streams/src/main/java/org/apache/logging/log4j/streams/helpers/ByteStreamLogger.java ---------------------------------------------------------------------- diff --git a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/helpers/ByteStreamLogger.java b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/helpers/ByteStreamLogger.java deleted file mode 100644 index 1157ea5..0000000 --- a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/helpers/ByteStreamLogger.java +++ /dev/null @@ -1,150 +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.helpers; - -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 static final int BUFFER_SIZE = 1024; - - private final ExtendedLogger logger; - private final Level level; - private final Marker marker; - private final ByteBufferInputStream in; - 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; - in = new ByteBufferInputStream(); - 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; - logEnd(fqcn); -// in.close(); - } - } - - private void extractMessages(final String fqcn) throws IOException { - if (closed) { - return; - } - int read = reader.read(msgBuf); - while (read > 0) { - int off = 0; - for (int pos = 0; pos < read; pos++) { - switch (msgBuf[pos]) { - case '\r': - msg.append(msgBuf, off, pos - off); - off = pos + 1; - break; - case '\n': - msg.append(msgBuf, off, pos - off); - off = pos + 1; - log(fqcn); - break; - } - } - msg.append(msgBuf, off, read - off); - 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 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; - } - } -} http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/a497e405/log4j-streams/src/main/java/org/apache/logging/log4j/streams/helpers/CharStreamLogger.java ---------------------------------------------------------------------- diff --git a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/helpers/CharStreamLogger.java b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/helpers/CharStreamLogger.java deleted file mode 100644 index 1282e84..0000000 --- a/log4j-streams/src/main/java/org/apache/logging/log4j/streams/helpers/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.helpers; - -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 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); - } - } - - 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 (msg) { - if (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': - msg.append(str, start, pos); - start = pos + 1; - if (c == '\n') { - log(fqcn); - } - break; - } - } - msg.append(str, start, end); - } - } else { - logEnd(fqcn); - } - } - - public void close(final String fqcn) { - synchronized (msg) { - closed = true; - 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/a497e405/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 new file mode 100644 index 0000000..06a7cde --- /dev/null +++ b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/util/ByteStreamLogger.java @@ -0,0 +1,150 @@ +/* + * 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 static final int BUFFER_SIZE = 1024; + + private final ExtendedLogger logger; + private final Level level; + private final Marker marker; + private final ByteBufferInputStream in; + 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; + in = new ByteBufferInputStream(); + 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; + logEnd(fqcn); +// in.close(); + } + } + + private void extractMessages(final String fqcn) throws IOException { + if (closed) { + return; + } + int read = reader.read(msgBuf); + while (read > 0) { + int off = 0; + for (int pos = 0; pos < read; pos++) { + switch (msgBuf[pos]) { + case '\r': + msg.append(msgBuf, off, pos - off); + off = pos + 1; + break; + case '\n': + msg.append(msgBuf, off, pos - off); + off = pos + 1; + log(fqcn); + break; + } + } + msg.append(msgBuf, off, read - off); + 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 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; + } + } +} http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/a497e405/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 new file mode 100644 index 0000000..4e136ed --- /dev/null +++ b/log4j-streams/src/main/java/org/apache/logging/log4j/streams/util/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.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 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); + } + } + + 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 (msg) { + if (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': + msg.append(str, start, pos); + start = pos + 1; + if (c == '\n') { + log(fqcn); + } + break; + } + } + msg.append(str, start, end); + } + } else { + logEnd(fqcn); + } + } + + public void close(final String fqcn) { + synchronized (msg) { + closed = true; + 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); + } +}
