public class LoggingOutputStream extends OutputStream
Note that no data is written out to the Logger until the stream is flushed or closed.
Example:
// make sure everything sent to System.err is logged System.setErr(new PrintStream(new LoggingOutputStream(LoggerFactory.getLogger(this.getClass()), Priority.WARN), true)); // make sure everything sent to System.out is also logged System.setOut(new PrintStream(new LoggingOutputStream(LoggerFactory.getLogger(this.getClass()), Priority.INFO), true));
Logger
Modifier and Type | Class and Description |
---|---|
static class |
LoggingOutputStream.Priority |
Modifier and Type | Field and Description |
---|---|
protected byte[] |
buf
The internal buffer where data is stored.
|
protected int |
count
The number of valid bytes in the buffer.
|
static int |
DEFAULT_BUFFER_LENGTH
The default number of bytes in the buffer.
|
protected boolean |
hasBeenClosed
Used to maintain the contract of
close() . |
protected static String |
LINE_SEPERATOR |
protected org.slf4j.Logger |
logger
The logger to write to.
|
protected String |
prefix |
protected LoggingOutputStream.Priority |
priority
The priority to use when writing to the Logger.
|
Constructor and Description |
---|
LoggingOutputStream(org.slf4j.Logger logger,
LoggingOutputStream.Priority priority)
Creates the LoggingOutputStream to flush to the given Logger.
|
LoggingOutputStream(org.slf4j.Logger logger,
LoggingOutputStream.Priority priority,
String prefix)
Creates the LoggingOutputStream to flush to the given Logger.
|
Modifier and Type | Method and Description |
---|---|
void |
close()
Closes this output stream and releases any system resources
associated with this stream.
|
void |
flush()
Flushes this output stream and forces any buffered output bytes
to be written out.
|
void |
write(int b)
Writes the specified byte to this output stream.
|
write, write
protected static final String LINE_SEPERATOR
protected boolean hasBeenClosed
close()
.protected byte[] buf
protected int count
public static final int DEFAULT_BUFFER_LENGTH
protected org.slf4j.Logger logger
protected LoggingOutputStream.Priority priority
protected String prefix
public LoggingOutputStream(org.slf4j.Logger logger, LoggingOutputStream.Priority priority) throws IllegalArgumentException
logger
- the Logger to write topriority
- the Priority to use when writing to the LoggerIllegalArgumentException
- if logger == null or priority == nullpublic LoggingOutputStream(org.slf4j.Logger logger, LoggingOutputStream.Priority priority, String prefix) throws IllegalArgumentException
logger
- the Logger to write topriority
- the Priority to use when writing to the Loggerprefix
- the prefix is writte before any new log line, maybe nullIllegalArgumentException
- if logger == null or priority == nullpublic void close()
close
is that it closes the output stream. A closed stream cannot perform
output operations and cannot be reopened.close
in interface Closeable
close
in interface AutoCloseable
close
in class OutputStream
public void write(int b) throws IOException
write
is that one byte is written
to the output stream. The byte to be written is the eight
low-order bits of the argument b
. The 24
high-order bits of b
are ignored.write
in class OutputStream
b
- the byte
to writeIOException
- if an I/O error occurs. In particular,
an IOException
may be thrown if the
output stream has been closed.public void flush()
flush
is
that calling it is an indication that, if any bytes previously
written have been buffered by the implementation of the output
stream, such bytes should immediately be written to their
intended destination.flush
in interface Flushable
flush
in class OutputStream
Copyright © 2015 OpenEstate. All rights reserved.