- 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
- 另请参见:
- Serialized Form
-
-
方法摘要
所有方法 实例方法 具体的方法 弃用的方法 变量和类型 方法 描述 InstantgetInstant()获取事件发生的瞬间。LevelgetLevel()获取日志消息级别,例如Level.SEVERE。StringgetLoggerName()获取源记录器的名称。StringgetMessage()在本地化或格式化之前获取“原始”日志消息。longgetMillis()自1970年以来以毫秒为单位获取截断事件时间。Object[]getParameters()获取日志消息的参数。ResourceBundlegetResourceBundle()获取本地化资源包StringgetResourceBundleName()获取本地化资源包名称longgetSequenceNumber()获取序列号。StringgetSourceClassName()获取(据称)发出日志记录请求的类的名称。StringgetSourceMethodName()获取(据称)发出日志记录请求的方法的名称。intgetThreadID()获取消息源自的线程的标识符。ThrowablegetThrown()获取与日志记录关联的任何throwable。voidsetInstant(Instant instant)设置事件发生的瞬间。voidsetLevel(Level level)设置日志消息级别,例如Level.SEVERE。voidsetLoggerName(String name)设置源记录器的名称。voidsetMessage(String message)在本地化或格式化之前设置“原始”日志消息。voidsetMillis(long millis)已过时。LogRecord使用Instant值维护具有纳秒分辨率的时间戳。voidsetParameters(Object[] parameters)将参数设置为日志消息。voidsetResourceBundle(ResourceBundle bundle)设置本地化资源包。voidsetResourceBundleName(String name)设置本地化资源包名称。voidsetSequenceNumber(long seq)设置序列号。voidsetSourceClassName(String sourceClassName)设置(据称)发出日志记录请求的类的名称。voidsetSourceMethodName(String sourceMethodName)设置(据称)发出日志记录请求的方法的名称。voidsetThreadID(int threadID)为发起消息的线程设置标识符。voidsetThrown(Throwable thrown)设置与日志事件关联的throwable。
-
-
-
构造方法详细信息
-
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()
-
setMillis
@Deprecated public void setMillis(long millis)
Deprecated.LogRecord maintains timestamps with nanosecond resolution, usingInstantvalues. For this reason,setInstant()should be used in preference tosetMillis().设置活动时间。- 实现要求:
-
这相当于调用
setInstant(Instant.ofEpochMilli(millis))。 - 参数
-
millis- 自1970年以来以millis活动时间。 - 另请参见:
-
setInstant(java.time.Instant)
-
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)
-
-