Class MonolineFormatter


  • public class MonolineFormatter
    extends Formatter
    A formatter writting log messages on a single line. Compared to SimpleFormatter, this formatter uses only one line per message instead of two. For example a message formatted by MonolineFormatter looks like:
     FINE core - A log message logged with level FINE from the "org.geotools.core" logger.
     
    By default, MonolineFormatter displays only the level and the message. Additional fields can be formatted if setTimeFormat(java.lang.String) or setSourceFormat(java.lang.String) methods are invoked with a non-null argument. The format can also be set from the jre/lib/logging.properties file. For example, user can cut and paste the following properties into logging.properties:
     ############################################################
     # Properties for the Geotools's MonolineFormatter.
     # By default, the monoline formatter display only the level
     # and the message. Additional fields can be specified here:
     #
     #   time:  If set, writes the time ellapsed since the initialization.
     #          The argument specifies the output pattern. For example, the
     #          pattern HH:mm:ss.SSSS displays the hours, minutes, seconds
     #          and milliseconds.
     #
     #  source: If set, writes the source logger or the source class name.
     #          The argument specifies the type of source to display. Valid
     #          values are none, logger:short, logger:long, class:short and
     #          class:long.
     ############################################################
     org.geotools.util.logging.MonolineFormatter.time = HH:mm:ss.SSS
     org.geotools.util.logging.MonolineFormatter.source = class:short
     
    The example below set the MonolineFormatter for the whole system with level FINE and "Cp850" page encoding (which is appropriate for some DOS command lines on Windows).
     java.util.logging.ConsoleHandler.formatter = org.geotools.util.logging.MonolineFormatter
     java.util.logging.ConsoleHandler.encoding = Cp850
     java.util.logging.ConsoleHandler.level = FINE
     
    Since:
    2.0
    Author:
    Martin Desruisseaux (IRD)
    • Constructor Detail

      • MonolineFormatter

        public MonolineFormatter()
        Constructs a default MonolineFormatter.
    • Method Detail

      • setTimeFormat

        public void setTimeFormat​(String pattern)
        Sets the format for displaying ellapsed time. The pattern must matches the format specified in SimpleDateFormat. For example, the pattern "HH:mm:ss.SSS" will display the ellapsed time in hours, minutes, seconds and milliseconds.
        Parameters:
        pattern - The time patter, or null to disable time formatting.
      • getTimeFormat

        public String getTimeFormat()
        Returns the format for displaying ellapsed time. This is the pattern specified to the last call to setTimeFormat(java.lang.String), or the patten specified in the org.geotools.MonolineFormater.time property in the jre/lib/logging.properties file.
        Returns:
        The time pattern, or null if time is not formatted.
      • setSourceFormat

        public void setSourceFormat​(String format)
        Sets the format for displaying the source. The pattern may be one of the following: "none", "logger:short", "class:short", "logger:long" or "class:long".

        The difference between a null and "none" is that null may be replaced by a default value, while "none" means that the user explicitly requested no source.

        Parameters:
        format - The format for displaying the source.
      • getSourceFormat

        public String getSourceFormat()
        Returns the format for displaying the source. This is the pattern specified to the last call to setSourceFormat(java.lang.String), or the patten specified in the org.geotools.MonolineFormater.source property in the jre/lib/logging.properties file.
        Returns:
        The source pattern, or null if source is not formatted.
      • format

        public String format​(LogRecord record)
        Formats the given log record and return the formatted string.
        Specified by:
        format in class Formatter
        Parameters:
        record - the log record to be formatted.
        Returns:
        a formatted log record
      • configureConsoleHandler

        public static MonolineFormatter configureConsoleHandler​(Logger logger,
                                                                Level level)
        Setup a MonolineFormatter for the specified logger and its children. This method search for all instances of ConsoleHandler using the SimpleFormatter. If such instances are found, they are replaced by a single instance of MonolineFormatter. If no such ConsoleHandler are found, then a new one is created with this MonolineFormatter.

        In addition, this method can set the handler levels. If the level is non-null, then all Handlers using the monoline formatter will be set to the specified level. This is provided for convenience, but non-null level argument should be avoided as much as possible because it overrides user's level settings. A user trying to configure his logging properties file may find confusing to see his setting ignored.

        Parameters:
        logger - The base logger to apply the change on.
        level - The desired level, or null if no level should be set.
        Returns:
        The registered MonolineFormatter (never null). The formatter output can be configured using the setTimeFormat(java.lang.String) and setSourceFormat(java.lang.String) methods.