模块 java.logging

类 XMLFormatter

java.lang.Object
java.util.logging.Formatter
java.util.logging.XMLFormatter

public class XMLFormatter extends Formatter
将 LogRecord 格式化为标准的 XML 格式。

DTD 规范作为 Java Logging API 规范的附录 A 提供。

XMLFormatter 可以与任意字符编码一起使用,但建议通常与 UTF-8 一起使用。可以在输出处理程序上设置字符编码。

实现要求:
从 JDK 9 开始,LogRecord 的实例包含一个 Instant ,它可以有低于毫秒分辨率的纳秒。 DTD 规范已更新为允许可选的 <nanos> 元素。默认情况下,XMLFormatter 将计算低于毫秒分辨率的纳秒调整(使用 LogRecord.getInstant().getNano() % 1000_000 )——如果这不是 0,则此调整值将打印在新的 <nanos> 元素中。然后可以使用 Instant.ofEpochSecond(millis/1000L, (millis % 1000L) * 1000_000L + nanos) 重建事件瞬间,其中 millisnanos 分别表示在 <millis><nanos> 元素中序列化的数字。
<date> 元素现在将包含由 DateTimeFormatter.ISO_INSTANT 格式化程序格式化的整个瞬间。

为了与旧解析器兼容,可以将 XMLFormatters 配置为通过在日志记录配置中指定 <xml-formatter-fully-qualified-class-name>.useInstant = false 财产 来恢复为旧格式。当 useInstantfalse 时,将保留旧格式。当 useInstanttrue(默认值)时,<nanos> 元素将被打印,<date> 元素将包含 formatted 瞬间。

例如,为了将 XMLFormatter 的普通实例配置为省略新的 <nano> 元素,可以在日志记录配置中指定 java.util.logging.XMLFormatter.useInstant = false

自从:
1.4
  • 构造方法详细信息

    • XMLFormatter

      public XMLFormatter()
      创建 XMLFormatter 的新实例。
      实现要求:
      从 JDK 9 开始,XMLFormatter 将打印出记录 活动时间 作为 Instant。此瞬间具有系统上可用的最佳分辨率。 <date> 元素将包含由 DateTimeFormatter.ISO_INSTANT 格式化的瞬间。此外,如果瞬间包含低于毫秒分辨率的纳秒,则将打印一个包含纳秒调整的可选 <nanos> 元素。

      通过在 日志配置 中指定一个属性,可以关闭此新行为并恢复旧格式。如果 LogManager.getLogManager().getProperty( this.getClass().getName()+".useInstant")"false""0" ,将恢复旧格式。

  • 方法详情

    • format

      public String  format(LogRecord  record)
      将给定消息格式化为 XML。

      可以在子类中覆盖此方法。建议使用 Formatter.formatMessage(java.util.logging.LogRecord) 便捷方法对消息字段进行本地化和格式化。

      指定者:
      format 在类 Formatter
      参数:
      record - 要格式化的日志记录。
      返回:
      格式化的日志记录
    • getHead

      public String  getHead(Handler  h)
      返回一组 XML 格式记录的标题字符串。
      重写:
      getHead 在类 Formatter
      参数:
      h - 目标处理程序(可以为空)
      返回:
      有效的 XML 字符串
    • getTail

      public String  getTail(Handler  h)
      返回一组 XML 格式记录的尾部字符串。
      重写:
      getTail 在类 Formatter
      参数:
      h - 目标处理程序(可以为空)
      返回:
      有效的 XML 字符串