Java Logging: Overview
Jakob Jenkov |
In this text I will try to give you an overview of the java.util.logging
API.
Hopefully it will be easier to understand the individual components once you understand
the big picture. Many of the concepts described here are also covered in more details
in subsequent texts.
Here is an overview diagram of how the Java Logging API works:
An overview of the core components in the Java Logging API |
All logging is done via a Logger
instance. Loggers gather the data to be logged into a LogRecord
.
The LogRecord
is then forwarded to a Handler
. The Handler
determines what to
do with the LogRecord
. For instance, the LogRecord
can be written to disk, or sent over
the network to a surveillance system.
Both Logger
's and Handler
's can pass the LogRecord
through a Filter
which determines whether the LogRecord
should be forwarded or not.
A Handler
can also use a Formatter
to format the LogRecord
as a string before it is sent
to the external disk or system.
Log Level
Whenever a message is logged, this message is logged with a certain log level. The level is an integer which determines how important the message is. The higher the number (level) is, the more important the message is.
A Logger
can have a minimum log level set on it, which determines if the message is forwarded
to a Handler
or not. This is not a Filter
, even though it has the same effect.
For instance, all messages below a certain level can be suppressed.
Logger Hierarchy
The Logger
instances are organized into a hierarchy. A Logger
further down in the hierarchy
will forward messages logged to it, to its ancestors in the hierarchy. Thus, log levels
and messages can be filtered or switched on and off for entire branches of the Logger
hierarchy at a time.
LogManager
The LogManager
is a component that is not displayed in the diagram at the top of this text.
The LogManager
holds the Logger
hierarchy, and also a global logging configuration,
which can be read from a file. The LogManager
is also covered in more detail in its own text.
Tweet | |
Jakob Jenkov |