## 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

    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

Field Summary
`protected static java.lang.ThreadLocal` `logs` Thread <-> CaptureLog associations.
`protected java.io.PrintStream` `out` Wrapped PrintStream.
`protected static java.util.Stack` `reuse` Spare CaptureLog ready for reuse.

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

Method Summary
`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 and return captured data as a String.
`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, format, format, printf, printf`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### out

    protected java.io.PrintStream out

  Wrapped PrintStream.

### logs

    protected static java.lang.ThreadLocal logs

  Thread <-> CaptureLog associations.

### reuse

    protected static java.util.Stack reuse

  Spare CaptureLog ready for reuse.

Constructor Detail

### SystemLogHandler

    public SystemLogHandler(java.io.PrintStream wrapped)

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

Method Detail

### startCapture

    public static void startCapture()

  Start capturing thread's output.

### stopCapture

    public static java.lang.String stopCapture()

  Stop capturing thread's output and return captured data as a String.

### findStream

    protected java.io.PrintStream findStream()

  Find PrintStream to which the output must be written to.

### 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.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`

Copyright © 2000-2008 Apache Software Foundation. All Rights Reserved.