Java Logging: Overview

Jakob Jenkov
Last update: 2014-06-23

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


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.

Jakob Jenkov

Featured Videos

Java ForkJoinPool

P2P Networks Introduction


Java Persistence
Close TOC
All Tutorial Trails
All Trails
Table of contents (TOC) for this tutorial trail
Trail TOC
Table of contents (TOC) for this tutorial
Page TOC
Previous tutorial in this tutorial trail
Next tutorial in this tutorial trail