Package org.apache.tomcat.util.log

## Class SystemLogHandler

- java.lang.Object
- - java.io.OutputStream
  - - java.io.FilterOutputStream
    - - java.io.PrintStream
      - - org.apache.tomcat.util.log.SystemLogHandler

All Implemented Interfaces:
  `java.io.Closeable`, `java.io.Flushable`, `java.lang.Appendable`, `java.lang.AutoCloseable`

    public class SystemLogHandler
    extends java.io.PrintStream

This helper class may be used to do sophisticated redirection of System.out and System.err on a per Thread basis. A stack is implemented per Thread so that nested startCapture and stopCapture can be used.

Author:
  Remy Maucherat, Glenn L. Nielsen

### Constructor Summary

Constructors
`SystemLogHandler​(java.io.PrintStream wrapped)` Construct the handler to capture the output of the given steam.

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`boolean` `checkError()`
`void` `close()`
`protected java.io.PrintStream` `findStream()` Find PrintStream to which the output must be written to.
`void` `flush()`
`void` `print​(boolean b)`
`void` `print​(char c)`
`void` `print​(char[] s)`
`void` `print​(double d)`
`void` `print​(float f)`
`void` `print​(int i)`
`void` `print​(long l)`
`void` `print​(java.lang.Object obj)`
`void` `print​(java.lang.String s)`
`void` `println()`
`void` `println​(boolean x)`
`void` `println​(char x)`
`void` `println​(char[] x)`
`void` `println​(double x)`
`void` `println​(float x)`
`void` `println​(int x)`
`void` `println​(long x)`
`void` `println​(java.lang.Object x)`
`void` `println​(java.lang.String x)`
`protected void` `setError()`
`static void` `startCapture()` Start capturing thread's output.
`static java.lang.String` `stopCapture()` Stop capturing thread's output.
`void` `write​(byte[] b)`
`void` `write​(byte[] buf, int off, int len)`
`void` `write​(int b)`

### Methods inherited from class java.io.PrintStream

`append, append, append, clearError, format, format, printf, printf`

### Methods inherited from class java.io.OutputStream

`nullOutputStream`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### SystemLogHandler

    public SystemLogHandler​(java.io.PrintStream wrapped)

Construct the handler to capture the output of the given steam.

Parameters:
  `wrapped` - The stream to capture

### Method Detail

#### startCapture

    public static void startCapture()

Start capturing thread's output.

#### stopCapture

    public static java.lang.String stopCapture()

Stop capturing thread's output.

Returns:
  The captured data

#### findStream

    protected java.io.PrintStream findStream()

Find PrintStream to which the output must be written to.

Returns:
  the print stream

#### flush

    public void flush()

Specified by:
  `flush` in interface `java.io.Flushable`
Overrides:
  `flush` in class `java.io.PrintStream`

#### close

    public void close()

Specified by:
  `close` in interface `java.lang.AutoCloseable`
Specified by:
  `close` in interface `java.io.Closeable`
Overrides:
  `close` in class `java.io.PrintStream`

#### checkError

    public boolean checkError()

Overrides:
  `checkError` in class `java.io.PrintStream`

#### setError

    protected void setError()

Overrides:
  `setError` in class `java.io.PrintStream`

#### write

    public void write​(int b)

Overrides:
  `write` in class `java.io.PrintStream`

#### write

    public void write​(byte[] b)
               throws java.io.IOException

Overrides:
  `write` in class `java.io.FilterOutputStream`
Throws:
  `java.io.IOException`

#### write

    public void write​(byte[] buf,
                      int off,
                      int len)

Overrides:
  `write` in class `java.io.PrintStream`

#### print

    public void print​(boolean b)

Overrides:
  `print` in class `java.io.PrintStream`

#### print

    public void print​(char c)

Overrides:
  `print` in class `java.io.PrintStream`

#### print

    public void print​(int i)

Overrides:
  `print` in class `java.io.PrintStream`

#### print

    public void print​(long l)

Overrides:
  `print` in class `java.io.PrintStream`

#### print

    public void print​(float f)

Overrides:
  `print` in class `java.io.PrintStream`

#### print

    public void print​(double d)

Overrides:
  `print` in class `java.io.PrintStream`

#### print

    public void print​(char[] s)

Overrides:
  `print` in class `java.io.PrintStream`

#### print

    public void print​(java.lang.String s)

Overrides:
  `print` in class `java.io.PrintStream`

#### print

    public void print​(java.lang.Object obj)

Overrides:
  `print` in class `java.io.PrintStream`

#### println

    public void println()

Overrides:
  `println` in class `java.io.PrintStream`

#### println

    public void println​(boolean x)

Overrides:
  `println` in class `java.io.PrintStream`

#### println

    public void println​(char x)

Overrides:
  `println` in class `java.io.PrintStream`

#### println

    public void println​(int x)

Overrides:
  `println` in class `java.io.PrintStream`

#### println

    public void println​(long x)

Overrides:
  `println` in class `java.io.PrintStream`

#### println

    public void println​(float x)

Overrides:
  `println` in class `java.io.PrintStream`

#### println

    public void println​(double x)

Overrides:
  `println` in class `java.io.PrintStream`

#### println

    public void println​(char[] x)

Overrides:
  `println` in class `java.io.PrintStream`

#### println

    public void println​(java.lang.String x)

Overrides:
  `println` in class `java.io.PrintStream`

#### println

    public void println​(java.lang.Object x)

Overrides:
  `println` in class `java.io.PrintStream`