- java.lang.Object
-
- java.util.logging.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
-
-
方法摘要
所有方法 接口方法 具体的方法 弃用的方法 Modifier and Type 方法 描述 Instant
getInstant()
获取事件发生的时刻。Level
getLevel()
获取日志消息级别,例如Level.SEVERE。String
getLoggerName()
获取源记录器的名称。String
getMessage()
在本地化或格式化之前获取“原始”日志消息。long
getMillis()
自1970年以来,截止事件时间为毫秒。Object[]
getParameters()
获取日志消息的参数。ResourceBundle
getResourceBundle()
获取本地化资源包String
getResourceBundleName()
获取本地化资源包名称long
getSequenceNumber()
获取序列号。String
getSourceClassName()
获取(据称)发出日志记录请求的类的名称。String
getSourceMethodName()
获取(据称)发出日志记录请求的方法的名称。int
getThreadID()
获取消息发起的线程的标识符。Throwable
getThrown()
获取与日志记录相关联的任何可抛出的值。void
setInstant(Instant instant)
设置事件发生的时刻。void
setLevel(Level level)
设置日志消息级别,例如Level.SEVERE。void
setLoggerName(String name)
设置源记录器的名称。void
setMessage(String message)
在本地化或格式化之前设置“原始”日志消息。void
setMillis(long millis)
已过时。LogRecord使用Instant
值维护纳秒分辨率的时间戳。 因此,setInstant()
应优先于setMillis()
。void
setParameters(Object[] parameters)
将参数设置为日志消息。void
setResourceBundle(ResourceBundle bundle)
设置本地化资源包。void
setResourceBundleName(String name)
设置本地化资源包名称。void
setSequenceNumber(long seq)
设置序列号。void
setSourceClassName(String sourceClassName)
设置(据称)发出日志记录请求的类的名称。void
setSourceMethodName(String sourceMethodName)
设置(据称)发出日志记录请求的方法的名称。void
setThreadID(int threadID)
设置消息始发线程的标识符。void
setThrown(Throwable thrown)
设置与日志事件相关联的可抛出。
-
-
-
构造方法详细信息
-
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()
-
setMillis
@Deprecated public void setMillis(long millis)
设置事件时间。- 实现要求:
-
这相当于调用
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()
获取与日志记录相关联的任何可抛出的值。如果事件涉及异常,这将是异常对象。 否则为null。
- 结果
- 一个可扔的
-
setThrown
public void setThrown(Throwable thrown)
设置与日志事件相关联的可抛出。- 参数
-
thrown
- 一个可抛出(可以是null)
-
-