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

Class LogRecord

  • All Implemented Interfaces:
    Serializable


    public class LogRecord
    extends Object
    implements Serializable
    LogRecord对象用于在日志框架和各个日志处理程序之间传递日志请求。

    当LogRecord被传递到日志框架中时,逻辑上属于框架,不应再被客户端应用程序使用或更新。

    请注意,如果客户端应用程序尚未指定明确的源代码方法名称和源类名称,则LogRecord类将在首次访问(由于通过调用getSourceMethodName或getSourceClassName)分析调用堆栈时自动推断它们。 因此,如果记录处理程序希望将LogRecord传递到另一个线程,或者通过RMI传输,并且如果希望随后获取方法名称或类名称信息,则它应该调用getSourceClassName或getSourceMethodName之一来强制将值填写。

    序列化注释:

    • LogRecord类是可序列化的。
    • 因为参数数组中的对象可能不可串行化,所以在序列化期间,参数数组中的所有对象都将被写为相应的字符串(使用Object.toString)。
    • ResourceBundle不作为序列化表单的一部分传输,但是资源包名称是,并且收件人对象的readObject方法将尝试找到合适的资源包。
    从以下版本开始:
    1.4
    另请参见:
    Serialized Form
    • 构造方法详细信息

      • LogRecord

        public LogRecord​(Level level,
                         String msg)
        使用给定的级别和消息值构造LogRecord。

        sequence属性将被初始化为一个新的唯一值。 这些序列值在VM内以增加的顺序分配。

        自JDK 9起,事件时间由Instant表示。 即时属性将被初始化为current instant ,使用系统上最好的clock

        线程ID属性将使用当前线程的唯一ID进行初始化。

        所有其他属性将被初始化为“null”。

        参数
        level - 记录级别值
        msg - 原始非本地化日志消息(可能为null)
        另请参见:
        Clock.systemUTC()
    • 方法详细信息

      • getLoggerName

        public String getLoggerName​()
        获取源记录器的名称。
        结果
        源记录器名称(可能为null)
      • setLoggerName

        public void setLoggerName​(String name)
        设置源记录器的名称。
        参数
        name - 源记录器名称(可以为空)
      • getResourceBundle

        public ResourceBundle getResourceBundle​()
        获取本地化资源包

        这是ResourceBundle,它应该用于在格式化之前本地化消息字符串。 如果消息不可本地化,或者没有合适的ResourceBundle可用,则结果可能为null。

        结果
        本地化资源包
      • setResourceBundle

        public void setResourceBundle​(ResourceBundle bundle)
        设置本地化资源包。
        参数
        bundle - 本地化包(可能为null)
      • getResourceBundleName

        public String getResourceBundleName​()
        获取本地化资源包名称

        这是ResourceBundle的名称,它应该用于在格式化之前本地化消息字符串。 如果消息不可本地化,结果可能为null。

        结果
        本地化资源包名称
      • setResourceBundleName

        public void setResourceBundleName​(String name)
        设置本地化资源包名称。
        参数
        name - 本地化包名称(可能为null)
      • getLevel

        public Level getLevel​()
        获取日志消息级别,例如Level.SEVERE。
        结果
        日志消息级别
      • setLevel

        public void setLevel​(Level level)
        设置日志消息级别,例如Level.SEVERE。
        参数
        level - 日志消息级别
      • getSequenceNumber

        public long getSequenceNumber​()
        获取序列号。

        序列号通常在LogRecord构造函数中分配,它以增加的顺序为每个新的LogRecord分配唯一的序列号。

        结果
        序列号
      • setSequenceNumber

        public void setSequenceNumber​(long seq)
        设置序列号。

        序列号通常在LogRecord构造函数中分配,因此通常不需要使用此方法。

        参数
        seq - 序列号
      • getSourceClassName

        public String getSourceClassName​()
        获取(据称)发出日志记录请求的类的名称。

        请注意,该sourceClassName未经验证,可能会被欺骗。 该信息可能已经作为日志记录调用的一部分提供,也可能由日志记录框架自动推断出来。 在后一种情况下,信息可能仅仅是近似的,并且实际上可以描述堆栈帧上的较早的呼叫。

        如果不能获得任何信息,则可以为null。

        结果
        源类名称
      • setSourceClassName

        public void setSourceClassName​(String sourceClassName)
        设置(据称)发出日志记录请求的类的名称。
        参数
        sourceClassName - 源类名(可以为空)
      • getSourceMethodName

        public String getSourceMethodName​()
        获取(据称)发出日志记录请求的方法的名称。

        请注意,此sourceMethodName未经过验证,可能会被欺骗。 该信息可能已经作为日志记录调用的一部分提供,也可能由日志记录框架自动推断出来。 在后一种情况下,信息可能仅仅是近似的,并且实际上可以描述堆栈帧上的较早的呼叫。

        如果不能获得任何信息,则可以为null。

        结果
        源方法名称
      • setSourceMethodName

        public void setSourceMethodName​(String sourceMethodName)
        设置(据称)发出日志记录请求的方法的名称。
        参数
        sourceMethodName - 源方法名(可以为空)
      • getMessage

        public String getMessage​()
        在本地化或格式化之前获取“原始”日志消息。

        可以为空,这相当于空字符串“”。

        该消息可以是最终文本或本地化密钥。

        在格式化期间,如果源记录器具有本地化ResourceBundle,并且如果该ResourceBundle具有此消息字符串的条目,则消息字符串将替换为本地化值。

        结果
        原始消息字符串
      • setMessage

        public void setMessage​(String message)
        在本地化或格式化之前设置“原始”日志消息。
        参数
        message - 原始消息字符串(可以为空)
      • getParameters

        public Object[] getParameters​()
        获取日志消息的参数。
        结果
        日志消息参数。 如果没有参数,可能为null。
      • setParameters

        public void setParameters​(Object[] parameters)
        将参数设置为日志消息。
        参数
        parameters - 日志消息参数。 (可能为空)
      • getThreadID

        public int getThreadID​()
        获取消息发起的线程的标识符。

        这是Java VM中的线程标识符,并且可能映射到或不映射到任何操作系统ID。

        结果
        线程ID
      • setThreadID

        public void setThreadID​(int threadID)
        设置消息始发线程的标识符。
        参数
        threadID - 线程ID
      • getMillis

        public long getMillis​()
        自1970年以来,截止事件时间为毫秒。
        API Note:
        要获得全纳秒的分辨率事件时间,请使用 getInstant()
        实现要求:
        这相当于调用 getInstant().toEpochMilli()
        结果
        自1970年以来,截止的事件时间以毫秒为单位
        另请参见:
        getInstant()
      • getInstant

        public Instant getInstant​()
        获取事件发生的时刻。
        结果
        事件发生的瞬间。
        从以下版本开始:
        9
      • setInstant

        public void setInstant​(Instant instant)
        设置事件发生的时刻。

        如果给定的instant表示时间线上的点在将来或过去太远以适应long毫秒和纳秒调整,则将抛出ArithmeticException

        参数
        instant - 事件发生的瞬间。
        异常
        NullPointerException - 如果 instant为空。
        ArithmeticException - 如果在调用 instant.toEpochMilli()时发生数字溢出。
        从以下版本开始:
        9
      • getThrown

        public Throwable getThrown​()
        获取与日志记录相关联的任何可抛出的值。

        如果事件涉及异常,这将是异常对象。 否则为null。

        结果
        一个可扔的
      • setThrown

        public void setThrown​(Throwable thrown)
        设置与日志事件相关联的可抛出。
        参数
        thrown - 一个可抛出(可以是null)