Tech and Media Labs
This site uses cookies to improve the user experience.




Java Logging: Formatters

Jakob Jenkov
Last update: 2014-06-23

The Handler's in the Java Logging API use a java.util.logging.Formatter to format the LogRecord's before writing it to an external system.

Java comes with two built-in Formatter's (subclasses of Formatter):

  1. SimpleFormatter
  2. XMLFormatter

The various Handler's in the Java Logging API use either of these two Formatter's by default, but you can also set your own custom Formatter subclass on a Handler.

You can create your own Formatter by subclassing the java.util.logging.Formatter class. Here is a simple example:

public class MyFormatter extends Formatter {

    @Override
    public String format(LogRecord record) {
        return record.getLevel() + ":" + record.getMessage();
    }
}

The subclass must override the abstract format() method in the Formatter class. The String returned by the format() is what is forwarded to the external system by the Handler. Exactly how the string should be formatted is up to you.

The Formatter class also contains the convenience method formatMessage() which can be used to format the message using the ResourceBundle of the LogRecord. Here is an example:

public class MyFormatter extends Formatter {

    @Override
    public String format(LogRecord record) {
        return formatMessage(record);
    }
}

You will not often need to implement your own Formatter, but once in a while, if a specific log format is required, a custom Formatter may be useful.

Jakob Jenkov




Copyright  Jenkov Aps
Close TOC