Module  java.logging
软件包  java.util.logging

Class SimpleFormatter



  • public class SimpleFormatter
    extends Formatter
    以人类可读格式打印LogRecord的简要摘要。 摘要通常为1或2行。

    Configuration:SimpleFormatter初始化为format string ,在java.util.logging.SimpleFormatter.format属性中指定的日志信息为format 该属性可以在logging properties配置文件中定义或作为系统属性定义。 如果在记录属性和系统属性中设置此属性,则将使用系统属性中指定的格式字符串。 如果未定义此属性或给定的格式字符串是illegal ,默认格式是实现特定的。

    从以下版本开始:
    1.4
    另请参见:
    Formatter
    • 构造方法详细信息

      • SimpleFormatter

        public SimpleFormatter​()
    • 方法详细信息

      • format

        public String format​(LogRecord record)
        格式化给定的LogRecord。

        可以通过在java.util.logging.SimpleFormatter.format属性中指定format string来自定义格式。 给定的LogRecord将格式化为通过调用:

          String.format(format, date, source, logger, level, message, thrown); 
        其中的论点是:
        1. format - java.util.logging.SimpleFormatter.format属性中指定的java.util.Formatter格式字符串或默认格式。
        2. date -一个ZonedDateTime表示对象event time的日志记录的ZoneId.systemDefault()系统时区。
        3. source - 表示呼叫者的字符串(如果有); 否则,记录器的名称。
        4. logger - 记录器名称。
        5. level - log level
        6. message - 从Formatter.formatMessage(LogRecord)方法返回格式化的日志消息。 它使用java.text格式化,不使用java.util.Formatter format参数。
        7. thrown - 表示与日志记录相关联的throwable的字符串,以及以换行符开头的回溯(如果有); 否则,一个空字符串。

        一些示例格式:

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

          1$方括号中的日志级别( 4$ ),日志消息( 5$ )和时间戳( 1$ )打印1行。

            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"

          这将打印2行,其中第一行包括时间戳( 1$ )和源( 2$ ); 第二行包括日志级别( 4$ )和日志消息( 5$ ),后跟可抛出和其追溯( 6$ )(如果有):

            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"

          这样打印出与上述示例类似的两行,并使用不同的日期/时间格式化,并且不会打印可抛出物体及其回溯:

            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"

          由于JDK java.util.logging使用java.time创建更精确的时间戳。 上述格式可用于将.%1$tN添加到日期/时间格式,以便纳秒也可以打印:

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

        这个方法也可以在一个子类中被覆盖。 建议使用Formatter.formatMessage(java.util.logging.LogRecord)方便的方法来本地化和格式化消息字段。

        Specified by:
        formatFormatter
        参数
        record - 要格式化的日志记录。
        结果
        格式化的日志记录