模块  java.logging
软件包  java.util.logging

Class LogRecord

  • 实现的所有接口
    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 - 源记录器名称(可以为null)
      • 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 - 源类名(可以为null)
      • getSourceMethodName

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

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

        如果无法获得信息,则可以为null。

        结果
        源方法名称
      • setSourceMethodName

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

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

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

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

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

        结果
        原始消息字符串
      • setMessage

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

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

        public void setParameters​(Object[] parameters)
        将参数设置为日志消息。
        参数
        parameters - 日志消息参数。 (可能为null)
      • 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()
        获取与日志记录关联的任何throwable。

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

        结果
        一个扔掉的人
      • setThrown

        public void setThrown​(Throwable thrown)
        设置与日志事件关联的throwable。
        参数
        thrown - 一个throwable(可能为null)