org.h2.message

## Class TraceSystem

- java.lang.Object
- - org.h2.message.TraceSystem

    public class TraceSystem
    extends java.lang.Object

The trace mechanism is the logging facility of this database. There is usually one trace system per database. It is called 'trace' because the term 'log' is already used in the database domain and means 'transaction log'. It is possible to write after close was called, but that means for each write the file will be opened and closed again (which is slower).

### Field Summary

Fields
`static int` `ADAPTER` This trace level means all type of messages should be written, but instead of using the trace file the messages should be written to SLF4J.
`static int` `DEBUG` This trace level means all type of messages should be written.
`static int` `DEFAULT_TRACE_LEVEL_FILE` The default level for file trace messages.
`static int` `DEFAULT_TRACE_LEVEL_SYSTEM_OUT` The default level for system out trace messages.
`static int` `ERROR` This trace level means only errors should be written.
`static int` `INFO` This trace level means errors and informational messages should be written.
`static int` `OFF` This trace level means nothing should be written.
`static int` `PARENT` The parent trace level should be used.

### Constructor Summary

Constructors
Constructor and Description
`TraceSystem(java.lang.String fileName)` Create a new trace system object.

### Method Summary

Methods
`void` `close()` Close the writers, and the files if required.
`int` `getLevelFile()`
`Trace` `getTrace(int moduleId)` Get or create a trace object for this module id.
`Trace` `getTrace(java.lang.String module)` Create a trace object for this module.
`boolean` `isEnabled(int level)` Check the given trace / log level is enabled.
`void` `setFileName(java.lang.String name)` Set the trace file name.
`void` `setLevelFile(int level)` Set the file trace level.
`void` `setLevelSystemOut(int level)` Set the trace level to use for System.out
`void` `setMaxFileSize(int max)` Set the maximum trace file size in bytes.
`void` `setName(java.lang.String name)` Set the name of the database or trace object.
`void` `setSysOut(java.io.PrintStream out)` Set the print stream to use instead of System.out.
`void` `write(int level, int moduleId, java.lang.String s, java.lang.Throwable t)` Write a message.
`void` `write(int level, java.lang.String module, java.lang.String s, java.lang.Throwable t)` Write a message.

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

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

### Field Detail

#### PARENT

    public static final int PARENT

The parent trace level should be used.

See Also:
  Constant Field Values

#### OFF

    public static final int OFF

This trace level means nothing should be written.

See Also:
  Constant Field Values

#### ERROR

    public static final int ERROR

This trace level means only errors should be written.

See Also:
  Constant Field Values

#### INFO

    public static final int INFO

This trace level means errors and informational messages should be written.

See Also:
  Constant Field Values

#### DEBUG

    public static final int DEBUG

This trace level means all type of messages should be written.

See Also:
  Constant Field Values

#### ADAPTER

    public static final int ADAPTER

This trace level means all type of messages should be written, but instead of using the trace file the messages should be written to SLF4J.

See Also:
  Constant Field Values

#### DEFAULT_TRACE_LEVEL_SYSTEM_OUT

    public static final int DEFAULT_TRACE_LEVEL_SYSTEM_OUT

The default level for system out trace messages.

See Also:
  Constant Field Values

#### DEFAULT_TRACE_LEVEL_FILE

    public static final int DEFAULT_TRACE_LEVEL_FILE

The default level for file trace messages.

See Also:
  Constant Field Values

### Constructor Detail

#### TraceSystem

    public TraceSystem(java.lang.String fileName)

Create a new trace system object.

Parameters:
  `fileName` - the file name

### Method Detail

#### setSysOut

    public void setSysOut(java.io.PrintStream out)

Set the print stream to use instead of System.out.

Parameters:
  `out` - the new print stream

#### getTrace

    public Trace getTrace(int moduleId)

Get or create a trace object for this module id. Trace modules with id are cached.

Parameters:
  `moduleId` - module id
Returns:
  the trace object

#### getTrace

    public Trace getTrace(java.lang.String module)

Create a trace object for this module. Trace modules with names are not cached.

Parameters:
  `module` - the module name
Returns:
  the trace object

#### isEnabled

    public boolean isEnabled(int level)

Check the given trace / log level is enabled.

Parameters:
  `level` - the level
Returns:
  true if the level is enabled

#### setFileName

    public void setFileName(java.lang.String name)

Set the trace file name.

Parameters:
  `name` - the file name

#### setMaxFileSize

    public void setMaxFileSize(int max)

Set the maximum trace file size in bytes.

Parameters:
  `max` - the maximum size

#### setLevelSystemOut

    public void setLevelSystemOut(int level)

Set the trace level to use for System.out

Parameters:
  `level` - the new level

#### setLevelFile

    public void setLevelFile(int level)

Set the file trace level.

Parameters:
  `level` - the new level

#### getLevelFile

    public int getLevelFile()

#### write

    public void write(int level,
             int moduleId,
             java.lang.String s,
             java.lang.Throwable t)

Write a message.

Parameters:
  `level` - the trace level
  `moduleId` - the id of the module
  `s` - the message
  `t` - the exception (may be null)

#### write

    public void write(int level,
             java.lang.String module,
             java.lang.String s,
             java.lang.Throwable t)

Write a message.

Parameters:
  `level` - the trace level
  `module` - the name of the module
  `s` - the message
  `t` - the exception (may be null)

#### close

    public void close()

Close the writers, and the files if required. It is still possible to write after closing, however after each write the file is closed again (slowing down tracing).

#### setName

    public void setName(java.lang.String name)

Set the name of the database or trace object.

Parameters:
  `name` - the new name