Java日志记录:LogRecord

时间:2020-01-09 10:36:45  来源:igfitidea点击:

LogRecord类将记录的消息包装到Logger中。我们可以将LogRecord直接记录到Logger中,也可以让Logger包装LogRecord中记录的内容。也就是说,在Logger上所有不采用LogRecord的日志记录方法都将传递给log方法的参数包装在LogRecord对象中。

一旦LogRecord传递给Logger或者由Logger内部产生,就可以传递给Filter(如果设置了过滤器),Handler和Logger。 op Logger层次结构。

LogRecord包含以下getter方法,可用于例如一个过滤器以确定是否应该记录LogRecord:

getLevel()
getLoggerName()
getMessage()
getMillis()
getParameters()
getResourceBundle()
getResourceBundleName()
getSequenceNumber()
getSourceClassName()
getSourceMethodName()
getThreadID()
getThrown()

这些getter方法中的每个方法也都有相应的setter方法,但是除非我们自己创建LogRecord实例,否则将不需要setter方法。这是对getter方法的简要说明。

getLevel()方法返回记录此LogRecord表示的消息的日志级别。

getLoggerName()方法返回记录此LogRecord的Logger的名称。

getMessage()方法返回记录的消息。

getMillis()方法返回记录LogRecord的时间(以毫秒为单位)。

getParameters()方法返回要插入此LogRecord消息中的参数。

getResourceBundle()方法返回用来对LogRecord消息进行本地化的ResourceBundle(如果有的话)。如果不使用ResourceBundle,则此方法返回null。

getResourceBundleName()方法返回用于本地化该LogRecord消息的ResourceBundle的名称(如果有)。如果没有使用ResourceBundle,则返回null。

当创建LogRecord时,getSequenceNumber()方法返回在LogRecord构造函数内部生成的序列号。

getSourceClassName()返回记录该LogRecord表示的消息的类的类名。但是请记住,由于各种原因,此名称可能并不完全正确。有关更多详细信息,请参见JavaDoc。

getSourceMethodName()返回记录该LogRecord表示的消息的方法的方法名称。但是请记住,由于各种原因,此名称可能并不完全正确。有关更多详细信息,请参见JavaDoc。

getThreadID()方法返回记录此LogRecord表示的消息的线程的ID。

getThrown()方法返回记录该LogRecord表示的消息时标记为已抛出的Throwable。这个Throwable可以作为参数传递给Logger日志方法,也可以直接在LogRecord上设置,然后传递给Logger。该"可抛出"通常是导致记录日志消息的原因。