模块 java.logging

类 LogRecord

java.lang.Object
java.util.logging.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
参见:
  • 构造方法详细信息

    • LogRecord

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

      sequence 属性将使用新的唯一值进行初始化。这些序列值在 VM 中按递增顺序分配。

      从 JDK 9 开始,事件时间由 Instant 表示。即时属性将初始化为 当前时刻 ,使用系统上可用的最佳

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

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

      参数:
      level - 日志记录级别值
      msg - 原始非本地化日志消息(可能为空)
      参见:
  • 方法详情

    • getLoggerName

      public String  getLoggerName()
      获取源记录器的名称。
      返回:
      源记录器名称(可能为空)
    • setLoggerName

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

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

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

      返回:
      本地化资源包
    • setResourceBundle

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

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

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

      返回:
      本地化资源包名称
    • setResourceBundleName

      public void setResourceBundleName(String  name)
      设置本地化资源包名称。
      参数:
      name - 本地化包名称(可能为空)
    • 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 未经验证,可能被欺骗。此信息可能已作为日志调用的一部分提供,也可能已由日志框架自动推断。在后一种情况下,信息可能只是近似的,实际上可能描述了对堆栈帧的较早调用。

      如果无法获取信息,则可能为空。

      返回:
      源类名称
    • setSourceClassName

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

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

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

      如果无法获取信息,则可能为空。

      返回:
      源方法名
    • setSourceMethodName

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

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

      可以为null,相当于空字符串""。

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

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

      返回:
      原始消息字符串
    • setMessage

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

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

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

      @Deprecated (since ="16") public int getThreadID()
      已弃用。
      此方法返回的值可能是合成的,可能与实际的 线程编号 不对应,请改用 getLongThreadID()
      获取消息来源线程的标识符。

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

      返回:
      线程ID
    • setThreadID

      @Deprecated (since ="16") public void setThreadID(int threadID)
      已弃用。
      此方法不允许传递长 线程编号 ,而是使用 setLongThreadID(long)
      为消息发起的线程设置标识符。
      参数:
      threadID - 线程 ID
    • getLongThreadID

      public long getLongThreadID()
      获取消息来源线程的线程标识符

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

      返回:
      线程ID
      自从:
      16
    • setLongThreadID

      public LogRecord  setLongThreadID(long longThreadID)
      为消息发起的线程设置标识符。
      参数:
      longThreadID - 线程 ID
      返回:
      这个日志记录
      自从:
      16
    • getMillis

      public long getMillis()
      获取自 1970 年以来以毫秒为单位的截断事件时间。
      API 注意:
      要获得完整的纳秒分辨率事件时间,请使用 getInstant()
      实现要求:
      这相当于调用 getInstant().toEpochMilli()
      返回:
      自 1970 年以来以毫秒为单位的截断事件时间
      参见:
    • setMillis

      @Deprecated public void setMillis(long millis)
      已弃用。
      LogRecord 使用 Instant 值维护具有纳秒分辨率的时间戳。因此,应优先使用 setInstant() 而不是 setMillis()
      设置活动时间。
      实现要求:
      这相当于调用 setInstant(Instant.ofEpochMilli(millis))
      参数:
      millis - 自 1970 年以来以毫秒为单位的事件时间。
      参见:
    • 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()
      获取与日志记录关联的任何可抛出对象。

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

      返回:
      一个可扔的
    • setThrown

      public void setThrown(Throwable  thrown)
      设置与日志事件关联的 throwable。
      参数:
      thrown - 可抛出的(可能为空)