java.util.logging

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

public class LogRecord
     
extends Object
implements Serializable

LogRecord 对象用于在日志框架和单个日志 Handler 之间传递日志请求。

将 LogRecord 传递到日志框架中后,它在逻辑上已经属于该框架,客户端应用程序不应再使用或更新它。

注意,如果客户端应用程序尚未显式指定源方法名和源类名,则 LogRecord 类将在第一次访问它们时通过解析调用堆栈来自动推导(根据对 getSourceMethodName 或 getSourceClassName 的调用)。因此,如果日志 Handler 要将 LogRecord 传递给另一个线程或者通过 RMI 传输它,并且如果它希望后续获取方法名或类名信息,则其应该调用 getSourceClassName 和 getSourceMethodName 的其中之一来强制将值填入。

序列化注意事项:

  • LogRecord 类是可序列化的。
  • 因为参数数组中的对象可能不可序列化,所以在序列化过程中,应该写入参数数组中所有对象的相应 String(使用 Object.toString)。
  • ResourceBundle 不是作为序列化形式的一部分传输的,但是资源包的名称是,而接收对象的 readObject 方法将尝试查找合适的资源包。

从以下版本开始:
1.4
另请参见:
序列化表格

构造方法摘要
LogRecord(Level level, String msg)
          用给定级别和消息值构造 LogRecord。
 
方法摘要
 Level getLevel()
          获取日志消息级别,例如 Level.SEVERE。
 String getLoggerName()
          获取源 Logger 名称
 String getMessage()
          获取本地化或格式化之前的“原始”日志消息。
 long getMillis()
          获取自从 1970 年以毫秒为单位的事件时间。
 Object[] getParameters()
          获取日志消息的参数。
 ResourceBundle getResourceBundle()
          获取本地化资源包。
 String getResourceBundleName()
          获取本地化资源包名称。
 long getSequenceNumber()
          获取序列号。
 String getSourceClassName()
          获取发出日志请求的类的名称。
 String getSourceMethodName()
          获取(可能)发出日志请求的方法的名称。
 int getThreadID()
          获取产生消息的线程的标识符。
 Throwable getThrown()
          获取与日志记录相关联的所有 throwable。
 void setLevel(Level level)
          设置日志消息级别,例如 Level.SEVERE。
 void setLoggerName(String name)
          设置源 Logger 名称。
 void setMessage(String message)
          设置本地化或格式化之前的“原始”日志消息。
 void setMillis(long millis)
          设置事件时间。
 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)
          设置与日志事件相关联的 throwable。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

LogRecord

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

使用新的唯一值初始化序列属性。这些序列值在 VM 中以升序进行分配。

将该 millis 属性初始化为当前时间。

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

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

参数:
level - 日志级别值
msg - 原始的非本地化日志消息(可以为 null)
方法详细信息

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 构造方法中分配的,所以一般不必使用这一方法。


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

public int getThreadID()
获取产生消息的线程的标识符。

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

返回:
线程 ID

setThreadID

public void setThreadID(int threadID)
设置产生消息的线程的标识符。

参数:
threadID - 线程 ID

getMillis

public long getMillis()
获取自从 1970 年以毫秒为单位的事件时间。

返回:
自从 1970 年以 millis 为单位的事件时间

setMillis

public void setMillis(long millis)
设置事件时间。

参数:
自从 - 1970 年以 millis 为单位的事件时间

getThrown

public Throwable getThrown()
获取与日志记录相关联的所有 throwable。

如果涉及异常,则此为异常对象。否则为 null。

返回:
一个 throwable

setThrown

public void setThrown(Throwable thrown)
设置与日志事件相关联的 throwable。

参数:
thrown - throwable(可以为 null)