返回介绍

java.util.logging 类 LogRecord

发布于 2019-10-04 09:51:56 字数 12412 浏览 914 评论 0 收藏 0

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(Levellevel, Stringmsg)

用给定级别和消息值构造 LogRecord。

方法摘要
LevelgetLevel()

获取日志消息级别,例如 Level.SEVERE。

StringgetLoggerName()

获取源 Logger 名称

StringgetMessage()

获取本地化或格式化之前的“原始”日志消息。

longgetMillis()

获取自从 1970 年以毫秒为单位的事件时间。

Object[]getParameters()

获取日志消息的参数。

ResourceBundlegetResourceBundle()

获取本地化资源包。

StringgetResourceBundleName()

获取本地化资源包名称。

longgetSequenceNumber()

获取序列号。

StringgetSourceClassName()

获取发出日志请求的类的名称。

StringgetSourceMethodName()

获取(假设)发出日志请求的方法的名称。

intgetThreadID()

获取产生消息的线程的标识符。

ThrowablegetThrown()

获取与日志记录相关联的所有 throwable。

voidsetLevel(Levellevel)

设置日志消息级别,例如 Level.SEVERE。

voidsetLoggerName(Stringname)

设置源 Logger 名称。

voidsetMessage(Stringmessage)

设置本地化或格式化之前的“原始”日志消息。

voidsetMillis(longmillis)

设置事件时间。

voidsetParameters(Object[]parameters)

设置日志消息的参数。

voidsetResourceBundle(ResourceBundlebundle)

设置本地化资源包。

voidsetResourceBundleName(Stringname)

设置本地化资源包名称。

voidsetSequenceNumber(longseq)

设置序列号。

voidsetSourceClassName(StringsourceClassName)

设置(可能)发出日志请求的类的名称。

voidsetSourceMethodName(StringsourceMethodName)

设置(可能)发出日志请求的方法的名称。

voidsetThreadID(intthreadID)

设置产生消息的线程的标识符。

voidsetThrown(Throwablethrown)

设置与日志事件相关联的 throwable。

从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

构造方法详细信息

LogRecord

public LogRecord(Levellevel,
                 Stringmsg)
用给定级别和消息值构造 LogRecord。

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

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

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

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

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

方法详细信息

getLoggerName

public String getLoggerName()
获取源 Logger 名称
返回:
源 logger 名称(可以为 null)

setLoggerName

public void setLoggerName(Stringname)
设置源 Logger 名称。
参数:
name - 源 logger 名称(可以为 null)

getResourceBundle

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

这是用于本地化消息字符串(格式化前)的 ResourceBundle。如果消息是不可本地化的或者没有合适的 ResourceBundle 可用,则结果可能为 null。


setResourceBundle

public void setResourceBundle(ResourceBundlebundle)
设置本地化资源包。
参数:
bundle - 本地化包(可以为 null)

getResourceBundleName

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

这是用于本地化消息字符串(格式化前)的 ResourceBundle 的名称。如果消息是不可本地化的,则结果可能为 null。


setResourceBundleName

public void setResourceBundleName(Stringname)
设置本地化资源包名称。
参数:
name - 本地化包名称(可以为 null)

getLevel

public Level getLevel()
获取日志消息级别,例如 Level.SEVERE。
返回:
日志消息级别

setLevel

public void setLevel(Levellevel)
设置日志消息级别,例如 Level.SEVERE。
参数:
level - 日志消息级别

getSequenceNumber

public long getSequenceNumber()
获取序列号。

序列号通常是在 LogRecord 构造方法中分配的,该构造方法按升序为每个新 LogRecord 分配一个惟一的序列号。

返回:
序列号

setSequenceNumber

public void setSequenceNumber(longseq)
设置序列号。

序列号通常是在 LogRecord 构造方法中分配的,所以一般不必使用这一方法。


getSourceClassName

public String getSourceClassName()
获取发出日志请求的类的名称。

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

如果未能获取任何信息,则返回 null。

返回:
源类名

setSourceClassName

public void setSourceClassName(StringsourceClassName)
设置(可能)发出日志请求的类的名称。
参数:
sourceClassName - 源类名(可以为 null)

getSourceMethodName

public String getSourceMethodName()
获取(假设)发出日志请求的方法的名称。

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

如果未能获取任何信息,则返回 null。

返回:
源方法名

setSourceMethodName

public void setSourceMethodName(StringsourceMethodName)
设置(可能)发出日志请求的方法的名称。
参数:
sourceMethodName - 源方法名(可以为 null)

getMessage

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

可能为 null,该值等效于空字符串 ""。

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

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

返回:
原始消息字符串

setMessage

public void setMessage(Stringmessage)
设置本地化或格式化之前的“原始”日志消息。
参数:
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(intthreadID)
设置产生消息的线程的标识符。
参数:
threadID - 线程 ID

getMillis

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

setMillis

public void setMillis(longmillis)
设置事件时间。
参数:
自从 - 1970 年以 millis 为单位的事件时间

getThrown

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

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

返回:
一个 throwable

setThrown

public void setThrown(Throwablethrown)
设置与日志事件相关联的 throwable。
参数:
thrown - throwable(可以为 null)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文