APIdia Launch Partner
Top Description Fields Constructors Methods
java.util.logging

public Class SimpleFormatter

extends Formatter
Class Inheritance
Known Direct Subclasses
sun.net.www.protocol.http.logging.HttpLogFormatter
Imports
java.io.*, java.time.ZoneId, .ZonedDateTime, jdk.internal.logger.SurrogateLogger

Print a brief summary of the LogRecord in a human readable format. The summary will typically be 1 or 2 lines.

Configuration: The SimpleFormatter is initialized with the format string specified in the java.util.logging.SimpleFormatter.format property to format the log messages. This property can be defined in the logging properties configuration file or as a system property. If this property is set in both the logging properties and system properties, the format string specified in the system property will be used. If this property is not defined or the given format string is illegal, the default format is implementation-specific.

Since
1.4
See Also
java.util.Formatter

Field Summary

Modifier and TypeField and Description
private final String

Constructor Summary

AccessConstructor and Description
public
SimpleFormatter()

Create a SimpleFormatter.

Method Summary

Modifier and TypeMethod and Description
public String

Returns:

a formatted log record
format
(LogRecord
the log record to be formatted.
record
)

Implements abstract java.util.logging.Formatter.format.

Format the given LogRecord.

pack-priv static String
Inherited from java.util.logging.Formatter:
formatMessagegetHeadgetTail

Field Detail

formatback to summary
private final String format

Constructor Detail

SimpleFormatterback to summary
public SimpleFormatter()

Create a SimpleFormatter.

Method Detail

formatback to summary
public String format(LogRecord record)

Implements abstract java.util.logging.Formatter.format.

Format the given LogRecord.

The formatting can be customized by specifying the format string in the java.util.logging.SimpleFormatter.format property. The given LogRecord will be formatted as if by calling:

   String.format(format, date, source, logger, level, message, thrown);
where the arguments are:
  1. format - the java.util.Formatter format string specified in the java.util.logging.SimpleFormatter.format property or the default format.
  2. date - a ZonedDateTime object representing event time of the log record in the ZoneId#systemDefault() system time zone.
  3. source - a string representing the caller, if available; otherwise, the logger's name.
  4. logger - the logger's name.
  5. level - the log level.
  6. message - the formatted log message returned from the Formatter#formatMessage(LogRecord) method. It uses java.text formatting and does not use the java.util.Formatter format argument.
  7. thrown - a string representing the throwable associated with the log record and its backtrace beginning with a newline character, if any; otherwise, an empty string.

Some example formats:

  • java.util.logging.SimpleFormatter.format="%4$s: %5$s [%1$tc]%n"

    This prints 1 line with the log level (4$), the log message (5$) and the timestamp (1$) in a square bracket.

        WARNING: warning message [Tue Mar 22 13:11:31 PDT 2011]
        
  • java.util.logging.SimpleFormatter.format="%1$tc %2$s%n%4$s: %5$s%6$s%n"

    This prints 2 lines where the first line includes the timestamp (1$) and the source (2$); the second line includes the log level (4$) and the log message (5$) followed by the throwable and its backtrace (6$), if any:

        Tue Mar 22 13:11:31 PDT 2011 MyClass fatal
        SEVERE: several message with an exception
        java.lang.IllegalArgumentException: invalid argument
                at MyClass.mash(MyClass.java:9)
                at MyClass.crunch(MyClass.java:6)
                at MyClass.main(MyClass.java:3)
        
  • java.util.logging.SimpleFormatter.format="%1$tb %1$td, %1$tY %1$tl:%1$tM:%1$tS %1$Tp %2$s%n%4$s: %5$s%n"

    This prints 2 lines similar to the example above with a different date/time formatting and does not print the throwable and its backtrace:

        Mar 22, 2011 1:11:31 PM MyClass fatal
        SEVERE: several message with an exception
        
  • java.util.logging.SimpleFormatter.format="%1$tb %1$td, %1$tY %1$tl:%1$tM:%1$tS.%1$tN %1$Tp %2$s%n%4$s: %5$s%6$s%n"

    Since JDK 9, java.util.logging uses java.time to create more precise time stamps. The format above can be used to add a .%1$tN to the date/time formatting so that nanoseconds will also be printed:

        Feb 06, 2015 5:33:10.279216000 PM example.Main main
        INFO: This is a test
        

This method can also be overridden in a subclass. It is recommended to use the Formatter#formatMessage convenience method to localize and format the message field.

Parameters
record:LogRecord

the log record to be formatted.

Returns:String

a formatted log record

Annotations
@Override
getLoggingPropertyback to summary
pack-priv static String getLoggingProperty(String name)