Google Web Toolkit
Search Google Code:

# Interface TreeLogger

public interface TreeLogger
An interface used to log messages in deferred binding generators.

## Nested Classes

TreeLogger.Type | A type-safe enum of all possible logging severity types.

## Fields

ALL | Logs everything -- quite a bit of stuff.
DEBUG | Logs detailed information that could be useful during debugging.
ERROR | Logs an error.
INFO | Logs information.
NULL | A valid logger that ignores all messages.
SPAM | Logs extremely verbose and detailed information that is typically useful only to product implementors.
TRACE | Logs information related to lower-level operation.
WARN | Logs a warning.

## Methods

branch(TreeLogger.Type, String, Throwable) | Produces a branched logger, which can be used to write messages that are logically grouped together underneath the current logger.
isLoggable(TreeLogger.Type) | Determines whether or not a log entry of the specified type would actually be logged.
log(TreeLogger.Type, String, Throwable) | Logs a message and/or an exception.

## Field Detail

### ALL

public static final TreeLogger.Type ALL
Logs everything -- quite a bit of stuff.

### DEBUG

public static final TreeLogger.Type DEBUG
Logs detailed information that could be useful during debugging.

### ERROR

public static final TreeLogger.Type ERROR
Logs an error.

### INFO

public static final TreeLogger.Type INFO
Logs information.

### NULL

public static final TreeLogger NULL
A valid logger that ignores all messages. Occasionally useful when calling methods that require a logger parameter.

### SPAM

public static final TreeLogger.Type SPAM
Logs extremely verbose and detailed information that is typically useful only to product implementors.

### TRACE

public static final TreeLogger.Type TRACE
Logs information related to lower-level operation.

### WARN

public static final TreeLogger.Type WARN
Logs a warning.

## Method Detail

### branch

public TreeLogger branch(TreeLogger.Type type, String msg, Throwable caught)
Produces a branched logger, which can be used to write messages that are logically grouped together underneath the current logger. The details of how/if the resulting messages are displayed is implementation-dependent.

The log message supplied when branching serves two purposes. First, the message should be considered a heading for all the child messages below it. Second, the `type` of the message provides a hint as to the importance of the children below it. As an optimization, an implementation could return a "no-op" logger if messages of the specified type weren't being logged, which the implication being that all nested log messages were no more important than the level of their branch parent.

As an example of how hierarchical logging can be used, a branched logger in a GUI could write log message as child items of a parent node in a tree control. If logging to streams, such as a text console, the branched logger could prefix each entry with a unique string and indent its text so that it could be sorted later to reconstruct a proper hierarchy.

#### Parameters

type
msg
  An optional message to log, which can be `null` if only an exception is being logged
caught
  An optional exception to log, which can be `null` if only a message is being logged

#### Return Value

an instance of TreeLogger representing the new branch of the log. May be the same instance on which this method is called

### isLoggable

public boolean isLoggable(TreeLogger.Type type)
Determines whether or not a log entry of the specified type would actually be logged. Caller use this method to avoid constructing log messages that would be thrown away.

#### Parameters

type

### log

public void log(TreeLogger.Type type, String msg, Throwable caught)
Logs a message and/or an exception. It is also legal to call this method using `null` arguments for both `msg` and `caught`, in which case the log event can be ignored.

#### Parameters

type
msg
  An optional message to log, which can be `null` if only an exception is being logged
caught
  An optional exception to log, which can be `null` if only a message is being logged