Module java.logging

Class LogRecord

java.lang.Object
java.util.logging.LogRecord
所有已实现的接口:
Serializable

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

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

请注意,如果客户端应用程序未指定显式的源方法名称和源类名称,则当它们首次被访问时(通过调用getSourceMethodName或getSourceClassName)时,LogRecord类将通过分析调用堆栈自动推断它们。因此,如果日志处理程序想要将LogRecord传递给另一个线程,或通过RMI传输它,并且希望随后获取方法名称或类名称信息,应调用getSourceClassName或getSourceMethodName中的一个以强制填充值。

序列化注意事项:

  • LogRecord类是可序列化的。
  • 由于参数数组中的对象可能不可序列化,在序列化期间,参数数组中的所有对象都将被写入相应的字符串(使用Object.toString)。
  • ResourceBundle不作为序列化形式的一部分传输,但资源包名称会传输,接收对象的readObject方法将尝试查找合适的资源包。
自从:
1.4
参见:
  • Constructor Details

    • LogRecord

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

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

      自JDK 9以来,事件时间由Instant表示。瞬时属性将初始化为当前瞬时,使用系统上最佳的时钟

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

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

      参数:
      level - 日志级别值
      msg - 原始非本地化的日志消息(可能为null)
      参见:
  • Method Details

    • getLoggerName

      public String getLoggerName()
      获取源Logger的名称。
      返回:
      源Logger名称(可能为null)
    • setLoggerName

      public void setLoggerName(String name)
      设置源Logger的名称。
      参数:
      name - 源Logger名称(可能为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,相当于空字符串""。

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

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

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

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

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

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

      @Deprecated(since="16") public int getThreadID()
      Deprecated.
      Values returned by this method may be synthesized, and may not correspond to the actual thread id, use getLongThreadID() instead.
      获取消息来源线程的标识符。

      这是Java VM内的线程标识符,可能与任何操作系统ID相匹配,也可能不匹配。

      返回:
      线程ID
    • setThreadID

      @Deprecated(since="16") public void setThreadID(int threadID)
      Deprecated.
      This method doesn't allow to pass a long thread id, use setLongThreadID(long) instead.
      设置消息来源线程的标识符。
      参数:
      threadID - 线程ID
    • getLongThreadID

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

      这是Java虚拟机中的线程标识符,可能与任何操作系统ID映射或不映射。

      返回:
      线程ID
      自:
      16
    • setLongThreadID

      public LogRecord setLongThreadID(long longThreadID)
      设置消息来源线程的标识符。
      参数:
      longThreadID - 线程ID
      返回:
      此LogRecord
      自:
      16
    • getMillis

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

      @Deprecated public void setMillis(long millis)
      Deprecated.
      LogRecord maintains timestamps with nanosecond resolution, using Instant values. For this reason, setInstant() should be used in preference to setMillis().
      设置事件时间。
      实现要求:
      这相当于调用setInstant(Instant.ofEpochMilli(millis))
      参数:
      millis - 自1970年以来以毫秒为单位的事件时间。
      参见:
    • getInstant

      public Instant getInstant()
      获取事件发生的时刻。
      返回:
      事件发生的时刻。
      自:
      9
    • setInstant

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

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

      参数:
      instant - 事件发生的时刻。
      抛出:
      NullPointerException - 如果instant为null。
      ArithmeticException - 如果调用instant.toEpochMilli()时会发生数值溢出。
      自:
      9
    • getThrown

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

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

      返回:
      一个可抛出对象
    • setThrown

      public void setThrown(Throwable thrown)
      设置与日志事件关联的可抛出对象。
      参数:
      thrown - 一个可抛出对象(可能为null)