# Class AntCompiler.SystemLogHandler

java.lang.Object
java.io.OutputStream
java.io.FilterOutputStream
java.io.PrintStream
org.apache.jasper.compiler.AntCompiler.SystemLogHandler

All Implemented Interfaces:
  `Closeable`, `Flushable`, `Appendable`, `AutoCloseable`

Enclosing class:
  `AntCompiler`

protected static class AntCompiler.SystemLogHandler extends PrintStream

Author:
  Anil K. Vijendran, Mandar Raje, Pierre Delisle, Kin-man Chung, Remy Maucherat, Mark Roth

## Field Summary

Fields
Modifier and Type
Field
Description
`protected static final ThreadLocal<ByteArrayOutputStream>`
`data`
Thread <-> ByteArrayOutputStream associations.
`protected static final ThreadLocal<PrintStream>`
`streams`
Thread <-> PrintStream associations.
`protected final PrintStream`
`wrapped`
Wrapped PrintStream.

### Fields inherited from class java.io.FilterOutputStream

`out`

## Constructor Summary

Constructors
Constructor
Description
`SystemLogHandler(PrintStream wrapped)`
Construct the handler to capture the output of the given steam.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`checkError()`
`void`
`close()`
`protected 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(Object obj)`
`void`
`print(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(Object x)`
`void`
`println(String x)`
`protected void`
`setError()`
`static void`
`setThread()`
Start capturing thread's output.
`static String`
`unsetThread()`
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, charset, clearError, format, format, printf, printf, writeBytes`

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

## Field Details

### wrapped

protected final PrintStream wrapped
Wrapped PrintStream.

### streams

protected static final ThreadLocal<PrintStream> streams
Thread <-> PrintStream associations.

### data

protected static final ThreadLocal<ByteArrayOutputStream> data
Thread <-> ByteArrayOutputStream associations.

## Constructor Details

### SystemLogHandler

public SystemLogHandler(PrintStream wrapped)
Construct the handler to capture the output of the given steam.

Parameters:
  `wrapped` - The wrapped stream

## Method Details

### setThread

public static void setThread()
Start capturing thread's output.

### unsetThread

public static String unsetThread()
Stop capturing thread's output and return captured data as a String.

Returns:
  the captured output

### findStream

protected PrintStream findStream()
Find PrintStream to which the output must be written to.

Returns:
  the current stream

### flush

public void flush()

Specified by:
  `flush` in interface `Flushable`
Overrides:
  `flush` in class `PrintStream`

### close

public void close()

Specified by:
  `close` in interface `AutoCloseable`
Specified by:
  `close` in interface `Closeable`
Overrides:
  `close` in class `PrintStream`

### checkError

public boolean checkError()

Overrides:
  `checkError` in class `PrintStream`

### setError

protected void setError()

Overrides:
  `setError` in class `PrintStream`

### write

public void write(int b)

Overrides:
  `write` in class `PrintStream`

### write

public void write(byte[] b) throws IOException

Overrides:
  `write` in class `PrintStream`
Throws:
  `IOException`

### write

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

Overrides:
  `write` in class `PrintStream`

### print

public void print(boolean b)

Overrides:
  `print` in class `PrintStream`

### print

public void print(char c)

Overrides:
  `print` in class `PrintStream`

### print

public void print(int i)

Overrides:
  `print` in class `PrintStream`

### print

public void print(long l)

Overrides:
  `print` in class `PrintStream`

### print

public void print(float f)

Overrides:
  `print` in class `PrintStream`

### print

public void print(double d)

Overrides:
  `print` in class `PrintStream`

### print

public void print(char[] s)

Overrides:
  `print` in class `PrintStream`

### print

public void print(String s)

Overrides:
  `print` in class `PrintStream`

### print

public void print(Object obj)

Overrides:
  `print` in class `PrintStream`

### println

public void println()

Overrides:
  `println` in class `PrintStream`

### println

public void println(boolean x)

Overrides:
  `println` in class `PrintStream`

### println

public void println(char x)

Overrides:
  `println` in class `PrintStream`

### println

public void println(int x)

Overrides:
  `println` in class `PrintStream`

### println

public void println(long x)

Overrides:
  `println` in class `PrintStream`

### println

public void println(float x)

Overrides:
  `println` in class `PrintStream`

### println

public void println(double x)

Overrides:
  `println` in class `PrintStream`

### println

public void println(char[] x)

Overrides:
  `println` in class `PrintStream`

### println

public void println(String x)

Overrides:
  `println` in class `PrintStream`

### println

public void println(Object x)

Overrides:
  `println` in class `PrintStream`