javatm platform
standard ed. 6

java.util.logging
类 logger

java.lang.object 继承者 java.util.logging.logger

public class logger
extends object

logger 对象用来记录<jì lù>特定系统或应用程序组件的日志消息。一般使用圆点分隔的层次名称空间来命名 logger。logger 名称可以< kě yǐ>是任意的字符串,但是<dàn shì>它们一般应该<yīng gāi>基于被记录<jì lù>组件的包名或类名,如 java.net 或 javax.swing。此外,可以< kě yǐ>创建“匿名”的 logger,其名称未存储在 logger 名称空间中。

可通过调用某个 getlogger 工厂方法来获得 logger 对象。这些方法要么创建一个新 logger,要么返回一个合适的现有 logger。

日志消息被转发到已注册的 handler 对象,该对象可以将消息转发到各种目的地,包括<bāo kuò>控制台、文件、os 日志等等。

每个 logger 都跟踪一个“父”logger,也就是 logger 名称空间中与其最近的现有祖先。

每个 logger 都有一个与其相关的 "level"。这反映了此 logger 所关心的最低 level。如果将 logger 的级别设置为 null,那么它的有效级别继承自父 logger,这可以通过其父 logger 一直沿树向上递归得到。

可以根据日志配置文件的属性来配置日志级别,在 logmanager 类的描述中对此有所说明。但是<dàn shì>也可以通过调用 logger.setlevel 方法动态地改变它。如果日志级别改变了,则此变化也会影响它的子 logger,因为任何级别为 null 的子 logger 的有效级别都继承自它的父 logger。

对于每次日志记录调用,logger 最初都依照 logger 的有效日志级别对请求级别(例如 severe 或 fine)进行简单的检查。如果请求级别低于日志级别,则日志记录调用将立即返回。

通过此初始(简单)测试后,logger 将分配一个 logrecord 来描述日志记录消息。接着调用 filter(如果存在)进行更详细的检查,以确定是否应该<yīng gāi>发布该记录。如果检查通过,则将 logrecord 发布到其输出 handler。在默认情况下,logger 也将 logrecord 沿树递推发布到其父 handler。

每个 logger 都有一个与其关联的 resourcebundle 名称。该指定的包用于本地化日志消息。如果一个 logger 没有自己<zì jǐ>的 resourcebundle 名称,则它将通过其父 logger 沿树递归继承到 resourcebundle 名称。

大多数 logger 输出方法都带有 "msg" 参数。此 msg 参数可以是一个原始值,也可以是一个本地化的键。在格式化期间,如果 logger 具有(或继承)一个本地化 resourcebundle,并且 resourcebundle 包含 msg 字符串的映射关系,那么用本地化值替换 msg 字符串。否则使用原来的 msg 字符串。通常,格式器使用 java.text.messageformat 形式的格式来格式化参数,例如,格式字符串 "{0} {1}" 将两个参数格式化为字符串。

将 resourcebundle 名称映射到 resourcebundle 时,logger 首先试图使用该线程的 contextclassloader。如果 contextclassloader 为 null,则 logger 将尝试 systemclassloader。作为初始实现中的临时过渡功能,如果 logger 无法<to be>从 contextclassloader 或 systemclassloaderis 中找到一个 resourcebundle,则 logger 将会向上搜索类堆栈并连续调用 classloader 来试图找到 resourcebundle(此调用堆栈搜索是为了允许<allow>容器过渡到使用 contextclassloader,该功能可能<kě néng>在以后版本中取消)。

格式化(包括<bāo kuò>本地化)是输出 handler 的责任,它通常会调用格式器。

注意<危险信号>,格式化不必同步发生<occasionally occurred>。它可以延迟,直到 logrecord 被实际写入到外部接收器。

日志记录方法划分为 5 个主要<main>类别:

对于不带显式源名和方法名的方法,日志记录框架将尽可能<kě néng>确定日志记录方法中调用了哪个类和方法。但是应认识<known>到,这样<zhè yàng>自动推断的信息可能只是近似的,甚至可能是完全<completely>错误的。这是因为允许<allow>虚拟机在 jit 编译时可以进行广泛的优化,并且可以完全<completely>移除栈帧,导致它无法<to be>可靠地找到调用的类和方法。

logger 上执行的所有<suǒ yǒu>方法都是多线程安全<ān quán>的。

子类化信息:注意<危险信号>,对于名称空间中的任意点,logmanager 类都可以提供自身的指定 logger 实现。因此< yīn cǐ>,logger 的任何子类(它们与新的 logmanager 类一起<yī qǐ>实现的情况除外)要注意应该从 logmanager 类获得一个 logger 实例,并应该将诸如 "isloggable" 和 "log(logrecord)" 这样<zhè yàng>的操作委托给该实例。注意,为了截取所有的日志记录输出,子类只需要重写 log(logrecord) 方法。所有其他<qí tā>日志记录方法作为在此 log(logrecord) 方法上的调用而实现。

从以下版本开始<kāi shǐ>:
1.4

字段摘要
static loggerglobal
          已过时。 此字段的初始化会容易出现<There>死锁。必须由 logger 类初始化来初始化字段,这可能会导致 logmanager 类初始化的死锁。在这种情况下,两个类初始化都要等待对方完成。从 jdk version 1.6 开始<kāi shǐ>,获取全局 logger 对象的首选方法是通过调用 logger.getlogger(logger.global_logger_name)
static stringglobal_logger_name
          global_logger_name 是全局 logger 的一个名称。
 
构造方法摘要
protected logger(string name,string resourcebundlename)
          受保护的方法,它用于为一个指定子系统的构造 logger。
 
方法摘要
 voidaddhandler(handler handler)
          添加一个日志 handler 以接收日志记录消息。
 voidconfig(string msg)
          记录一条 config 消息。
 voidentering(string sourceclass,string sourcemethod)
          记录一个方法条目。
 voidentering(string sourceclass,string sourcemethod,object param1)
          记录一个方法条目,带有一个参数。
 voidentering(string sourceclass,string sourcemethod,object[] params)
          记录一个方法条目,带有一组参数。
 voidexiting(string sourceclass,string sourcemethod)
          记录一个方法返回。
 voidexiting(string sourceclass,string sourcemethod,object result)
          记录一个方法返回,带有结果对象。
 voidfine(string msg)
          记录一条 fine 消息。
 voidfiner(string msg)
          记录一条 finer 消息。
 voidfinest(string msg)
          记录一条 finest 消息。
static loggergetanonymouslogger()
          创建一个匿名的 logger。
static loggergetanonymouslogger(string resourcebundlename)
          创建一个匿名的 logger。
 filtergetfilter()
          获取此 logger 的当前过滤器。
 handler[]gethandlers()
          获得与此 logger 相关的 handler。
 levelgetlevel()
          获取已为此 logger 指定的日志级别(level)。
static loggergetlogger(string name)
          为指定子系统查找或创建一个 logger。
static loggergetlogger(string name,string resourcebundlename)
          为指定子系统查找或创建一个 logger。
 stringgetname()
          获取此 logger 的名称。
 loggergetparent()
          返回此 logger 的父 logger。
 resourcebundlegetresourcebundle()
          获取此 logger 在当前默认语言环境的本地化资源包。
 stringjs随机数getresourcebundlename()
          获取此 logger 的本地化资源包名称。
 booleangetuseparenthandlers()
          获知此 logger 是否将其输出发送到它的父 logger。
 voidinfo(string msg)
          记录一条 info 消息。
 booleanisloggable(level level)
          检查给定级别的消息实际上是否由此 logger 记录。
 voidlog(level level,string msg)
          记录一条不带参数的消息。
 voidlog(level level,string msg,object param1)
          记录带有一个对象参数的消息。
 voidlog(level level,string msg,object[] params)
          记录带有一组对象参数的消息。
 voidlog(level level,string msg,throwable thrown)
          记录带有相关的可抛出信息的消息。
 voidlog(logrecord record)
          记录一条 logrecord。
 voidlogp(level level,string sourceclass,string sourcemethod,string msg)
          记录一条消息,具有指定的源类和方法,不带参数。
 voidlogp(level level,string sourceclass,string sourcemethod,string msg,object param1)
          记录一条消息,具有指定的源类和方法,带有单个日志消息的对象参数。
 voidlogp(level level,string sourceclass,string sourcemethod,string msg,object[] params)
          记录一条消息,具有指定的源类和方法,带有一组对象参数。
 voidlogp(level level,string sourceclass,string sourcemethod,string msg,throwable thrown)
          记录一条消息,具有指定源类和方法,带有相关的可抛出信息。
 voidlogrb(level level,string sourceclass,string sourcemethod,string bundlename,string msg)
          记录一条消息,具有指定的源类、方法和资源包名,不带参数。
 voidlogrb(level level,string sourceclass,string sourcemethod,string bundlename,string msg,object param1)
          记录一条消息,具有指定的源类、方法和资源包名,带有单个日志消息的对象参数。
 voidlogrb(level level,string sourceclass,string sourcemethod,string bundlename,string msg,object[] params)
          记录一条消息,具有指定的源类、方法和资源包名,带有一组对象参数。
 voidlogrb(level level,string sourceclass,string sourcemethod,string bundlename,string msg,throwable thrown)
          记录一条消息,具有指定的源类、方法和资源包名,带有相关的可抛出对象。
 voidremovehandler(handler handler)
          移除一个日志 handler。
 voidsetfilter(filter newfilter)
          设置过滤器以控制此 logger 的输出。
 voidsetlevel(level newlevel)
          设置日志级别,指定此 logger 记录的消息级别。
 voidsetparent(logger parent)
          设置此 logger 的父 logger。
 voidsetuseparenthandlers(boolean useparenthandlers)
          指定此 logger 是否应该将其输出发送到它的父 logger。
 voidsevere(string msg)
          记录一条 severe 消息。
 voidthrowing(string sourceclass,string sourcemethod,throwable thrown)
          正抛出异常的记录。
 voidwarning(string msg)
          记录一条 warning 消息。
 
从类 java.lang.object 继承的方法
clone, equals, finalize, getclass, hashcode, notify, notifyall, tostring, wait, wait, wait
 

字段详细校糶ǎn>畔

global_logger_name

public static final string global_logger_name
global_logger_name 是全局 logger 的一个名称。此名称是向偶尔使用 logging 包的开发<developing>人员提供的一种便捷方法。认真使用 logging 包(例如在产品<chǎn pǐn>中)的开发人员应创建并使用其自己<zì jǐ>的 logger 对象(带合适的名称),这样才能在适合于每个 logger 粒度<attitudes>的级别上控制日志记录。

获取全局 logger 的首选方法是通过调用 logger.getlogger(logger.global_logger_name)

从以下版本开始:
1.6
另请参见:
常量字段值

global

@deprecatedpublic static final logger global
已过时。 此字段的初始化会容易出现<There>死锁。必须由 logger 类初始化来初始化字段,这可能会导致 logmanager 类初始化的死锁。在这种情况下,两个类初始化都要等待对方完成。从 jdk version 1.6 开始,获取全局 logger 对象的首选方法是通过调用 logger.getlogger(logger.global_logger_name)
“全局”logger 对象是向偶尔使用 logging 包的开发人员提供的一种便捷方法。对于经常使用 logging 包(如在产品<chǎn pǐn>中)的开发人员应创建和使用其自己的 logger 对象(带合适的名称),这样才能在适合于每个 logger 粒度<attitudes>的级别上控制日志记录。

构造方法详细信息

logger

protected logger(string name,   string resourcebundlename)
受保护的方法,它用于为一个指定子系统的构造 logger。

该 logger 初始配置的 level 为 null,并且 useparenthandler 为 true。

参数:
name - logger 的名称。这应该是一个圆点分隔的名称,并且通常应该基于子系统的包名或类名(如 java.net 或 javax.swing)。对于匿名 logger 来说,名称可以为 null。
resourcebundlename - 用来本地化此 logger 消息的 resourcebundle 的名称。如果消息不需要本地化,则名称可能为 null。
抛出:
missingresourceexception - 如果 resourcebundlename 不为 null,并且无法找到相应的资源。
这是该大学新成立<was founded>的机械工程系目前获得的最大<largest>一笔研究经费。
从报告可以看出,亚裔学生<xué sheng>体现出鲜明的“模範族裔”色彩:家庭<family>重视教育<education>,学生<xué sheng>勤奋学习,成绩出类拔萃,不良行为较少。
但以散户客为主的券商却在不断加仓,5月13日,中银香港<xiāng gǎng>的持仓量增加至315.6万股,汇丰银行持仓量达174.99万股,渣打银行持仓量为100.58万股,反映了不少散户在近日看到恩达集团大幅下跌后,抱着赌一把的心态一头扎进去。
有的是为了孩子得到更好的教育<education>机会<offer>(美国只有直系亲属可以申请其父母<fù mǔ>子女和兄弟<xiōng dì>姐妹<sisters>),有的是希望<xī wàng>父母<fù mǔ>赴美帮忙带孩子,也有的是希望<xī wàng>父母来申请美国的老人福利以协助他们的生活等。
林丽娟指出,华裔移民多为中产阶级以上的移民,且主要<main>为孩子教育移民,因此< yīn cǐ>愿意花费较多金额,选择在非市区的好学区附近买房;至于在市区买房的华裔新移民,许多<xǔ duō>人将独立屋改成小套房出租,作为生财工具。
其中增值幅度最大<largest>的5个区包括屋价成长30%的密西沙加市Lorne Park、增幅达30.2%,位居屋价飙涨之冠;万锦康山区、增幅达27.7%;Armour Heights/Bathurst Manor、增幅为27.5%;密西沙加市Creditview/Erindale、增幅为26.5%;York Mills的Hogg's Hollow/Bridle Path、增幅为26.2%。
沈伟伟印象中,Chris连中国<zhōng guó>食物<Food>都不太碰,他记得有次一起<yī qǐ>登山用餐时,给她个卤蛋,陈家慧还不敢要,说不太能接受<accepted>“黑黑的食物<Food>”。
方法详细信息

getlogger

public static logger getlogger(string name)
为指定子系统查找或创建一个 logger。如果已经<have been>创建了具有给定名称的 logger,则返回该 logger。否则创建一个新的 logger。

如果创建了新的 logger,则根据 logmanager 的配置来配置其日志级别,并将日志输出发送到其父处理程序。日志配置注册在 logmanager 全局名称空间内。

参数:
name - logger 的名称。这应该是一个圆点分隔的名称,并且通常应该基于子系统的包名或类名(如 java.net 或 javax.swing)
返回:
适合的 logger
抛出:
nullpointerexception - 如果 name 为 null。

getlogger

public static logger getlogger(string name,      string resourcebundlename)
为指定子系统查找或创建一个 logger。如果已经<have been>创建了具有给定名称的 logger,则返回该 logger。否则创建一个新的 logger。

如果创建了新的 logger,则根据 logmanager 来配置其日志级别,并将日志输出发送到其父处理程序。日志配置注册在 logmanager 全局名称空间内。

如果指定的 logger 已经存在,并且没有本地化资源包,则使用给定的资源包名称。如果给定的 logger 已经存在,并有不同的资源包名称,则抛出 illegalargumentexception。

参数:
name - logger 的名称。这应该是一个圆点分隔的名称,并且通常应该基于子系统的包名或类名(如 java.net 或 javax.swing)。
resourcebundlename - 用来本地化此 logger 消息的 resourcebundle 的名称。如果消息不需要本地化,则名称可以为 null
返回:
合适的 logger。
抛出:
missingresourceexception - 如果无法找到指定的 resourcebundle。
illegalargumentexception - 如果 logger 已经存在,并使用了不同的资源包名称。
nullpointerexception - 如果 name 为 null。

getanonymouslogger

public static logger getanonymouslogger()
创建一个匿名的 logger。新创建的 logger 不是注册在 logmanager 名称空间内。不必对是否更新到 logger 进行访问<visit>检查。

此工厂方法主要适合从 applet 来使用。因为得到的 logger 是匿名的,所以它可通过创建类而保持为私有的。这就不需要进行常规安全<ān quán>检查,从而允许不受信任的 applet 代码可更新 logger 的控制状态。例如,applet 可以在匿名的 logger 上执行 setlevel 或 addhandler 操作。

即使新的 logger 是匿名的,也要配置它将根 logger ("") 作为其父 logger。这意味着在默认情况下此 logger 从根 logger 继承有效级别和处理程序。

返回:
新创建的私有 logger。

getanonymouslogger

public static logger getanonymouslogger(string resourcebundlename)
创建一个匿名的 logger。新创建的 logger 不是注册在 logmanager 名称空间内。不会对 logger 是否更新进行访问<visit>检查。

此工厂方法主要适合从 applet 使用。因为得到的 logger 是匿名的,所以它可通过创建类而保持为私有的。这就不需要进行常规安全检查,从而允许不受信任的 applet 代码可更新 logger 的控制状态。例如,applet 可以在匿名的 logger 上执行 setlevel 或 addhandler 操作。

即使新的 logger 是匿名的,也要把它配置为将根 logger ("") 作为其父 logger。这意味着在默认情况下此 logger 从根 logger 继承有效级别和处理程序。

参数:
resourcebundlename - 用来本地化此 logger 消息的 resourcebundle 的名称。如果消息不需要本地化,则名称可以为 null。
返回:
新创建的私有 logger。
抛出:
missingresourceexception - 如果无法找到指定的 resourcebundle。

getresourcebundle

public resourcebundle getresourcebundle()
获取此 logger 在当前默认语言环境的本地化资源包。注意,如果结果为 null,则 logger 将使用从其父 logger 继承的资源包。

返回:
本地化包(可能为 null)

getresourcebundlename

public string getresourcebundlename()
获取此 logger 的本地化资源包名称。注意,如果结果为 null,则 logger 将使用从其父 logger 继承的资源包名称。

返回:
本地化包名称(可能为 null)

setfilter

public void setfilter(filter newfilter)    throws securityexception
设置过滤器以控制此 logger 的输出。

通过初始的“级别”检查之后,logger 将调用此 filter 以检查是否确实应该发布某个日志记录。

参数:
newfilter - filter 对象(可能为 null)
抛出:
securityexception - 如果安全管理<managing>器存在并且调用者不具有 loggingpermission("control")。

getfilter

public filter getfilter()
获取此 logger 的当前过滤器。

返回:
过滤器对象(可能为 null)

log

public void log(logrecord record)
记录一条 logrecord。

此类中的其他<qí tā>所有日志记录方法都调用此方法以实际执行所有日志记录操作。子类可以重写此单个方法,从而捕获所有的日志活动。

参数:
record - 要发布的 logrecord

log

public void log(level level,    string msg)
记录一条不带参数的消息。

如果当前对于给定的消息级别而言 logger 是启用的,那么将给定的消息转发到所有已注册的输出 handler 对象。

参数:
level - 某个消息级别标识符,例如 severe
msg - 字符串消息(或消息类别中的键)

log

public void log(level level,    string msg,    object param1)
记录带有一个对象参数的消息。

如果当前对于给定的消息级别而言 logger 是启用的,则创建相应的 logrecord 并转发到所有已注册的输出 handler 对象。

参数:
level - 某个消息级别标识符,例如 severe
msg - 字符串消息(或消息类别中的键)
param1 - 消息的参数

log

public void log(level level,    string msg,    object[] params)
记录带有一组对象参数的消息。

如果当前对于给定的消息级别而言 logger 是启用的,则创建相应的 logrecord 并转发到所有已注册的输出 handler 对象。

参数:
level - 某个消息级别标识符,例如 severe
msg - 字符串消息(或消息类别中的键)
params - 消息的一组参数

log

public void log(level level,    string msg,    throwable thrown)
记录带有相关的可抛出信息的消息。

如果当前对于给定的消息级别而言 logger 是启用的,那么将给定的参数存储在 logrecord 中,而 logrecord 则被转发到所有已注册的输出处理程序。

注意,抛出的参数存储在 logrecord 抛出属性中,而不是存储在 logrecord 参数属性中。因此特别通过输出 formatter 来处理参数,而不是将其视为 logrecord 消息属性的格式化参数。

参数:
level - 某个消息级别标识符,例如 severe
msg - 字符串消息(或消息类别中的键)
thrown - 与日志消息相关的可抛出对象。

logp

public void logp(level level,   string sourceclass,   string sourcemethod,   string msg)
记录一条消息,具有指定的源类和方法,不带参数。

如果当前对于给定的消息级别而言 logger 是启用的,那么将给定的消息转发到所有已注册的输出 handler 对象。

参数:
level - 某个消息级别标识符,例如 severe
sourceclass - 发出日志记录请求的类名
sourcemethod - 发出日志记录请求的方法名
msg - 字符串消息(或消息类别中的键)

logp

public void logp(level level,   string sourceclass,   string sourcemethod,   string msg,   object param1)
记录一条消息,具有指定的源类和方法,带有单个日志消息的对象参数。

如果当前对于给定的消息级别而言 logger 是启用的,则创建相应的 logrecord 并转发到所有已注册的输出 handler 对象。

参数:
level - 某个消息级别标识符,例如 severe
sourceclass - 发出日志记录请求的类名
sourcemethod - 发出日志记录请求的方法名
msg - 字符串消息(或消息类别中的键)
param1 - 日志消息的参数。

logp

public void logp(level level,   string sourceclass,   string sourcemethod,   string msg,   object[] params)
记录一条消息,具有指定的源类和方法,带有一组对象参数。

如果当前对于给定的消息级别而言 logger 是启用的,则创建相应的 logrecord 并转发到所有已注册的输出 handler 对象。

参数:
level - 某个消息级别标识符,例如 severe
sourceclass - 发出日志记录请求的类名
sourcemethod - 发出日志记录请求的方法名
msg - 字符串消息(或消息类别中的键)
params - 消息的一组参数

logp

public void logp(level level,   string sourceclass,   string sourcemethod,   string msg,   throwable thrown)
记录一条消息,具有指定源类和方法,带有相关的可抛出信息。

如果当前对于给定的消息级别而言 logger 是启用的,那么将给定的参数存储在 logrecord 中,而 logrecord 则被转发到所有已注册的输出处理程序。

注意,抛出的参数存储在 logrecord 抛出属性中,而不是存储在 logrecord 参数属性中。因此特别通过输出 formatter 来处理参数,而不是将其视为 logrecord 消息属性的格式化参数。

参数:
level - 某个消息级别标识符,例如 severe
sourceclass - 发出日志记录请求的类名
sourcemethod - 发出日志记录请求的方法名
msg - 字符串消息(或消息类别中的键)
thrown - 与日志消息相关的可抛出对象。

logrb

public void logrb(level level,   string sourceclass,   string sourcemethod,   string bundlename,   string msg)
记录一条消息,具有指定的源类、方法和资源包名,不带参数。

如果当前对于给定的消息级别而言 logger 是启用的,那么将给定的消息转发到所有已注册的输出 handler 对象。

使用指定的资源包本地化 msg 字符串。如果资源包名为 null,或者一个空 string 或无效,那么不本地化 msg 字符串。

参数:
level - 某个消息级别标识符,例如 severe
sourceclass - 发出日志记录请求的类名
sourcemethod - 发出日志记录请求的方法名
bundlename - 本地化 msg 的资源包名(可能为 null)
msg - 字符串消息(或消息类别中的键)

logrb

public void logrb(level level,   string sourceclass,   string sourcemethod,   string bundlename,   string msg,   object param1)
记录一条消息,具有指定的源类、方法和资源包名,带有单个日志消息的对象参数。

如果当前对于给定的消息级别而言 logger 是启用的,则创建相应的 logrecord 并转发到所有已注册的输出 handler 对象。

使用指定的资源包本地化 msg 字符串。如果资源包名为 null,或者一个空 string 或无效,那么不本地化 msg 字符串。

参数:
level - 某个消息级别标识符,例如 severe
sourceclass - 发出日志记录请求的类名
sourcemethod - 发出日志记录请求的方法名
bundlename - 本地化 msg 的资源包名,可以为 null
msg - 字符串消息(或消息类别中的键)
param1 - 日志消息的参数。

logrb

public void logrb(level level,   string sourceclass,   string sourcemethod,   string bundlename,   string msg,   object[] params)
记录一条消息,具有指定的源类、方法和资源包名,带有一组对象参数。

如果当前对于给定的消息级别而言 logger 是启用的,则创建相应的 logrecord 并转发到所有已注册的输出 handler 对象。

使用指定的资源包本地化 msg 字符串。如果资源包名为 null,或者一个空 string 或无效,那么不本地化 msg 字符串。

参数:
level - 某个消息级别标识符,例如 severe
sourceclass - 发出日志记录请求的类名
sourcemethod - 发出日志记录请求的方法名
bundlename - 本地化 msg 的资源包名(可能为 null)
msg - 字符串消息(或消息类别中的键)
params - 消息的一组参数

logrb

public void logrb(level level,   string sourceclass,   string sourcemethod,   string bundlename,   string msg,   throwable thrown)
记录一条消息,具有指定的源类、方法和资源包名,带有相关的可抛出对象。

如果当前对于给定的消息级别而言 logger 是启用的,那么将给定的参数存储在 logrecord 中,而 logrecord 则被转发到所有已注册的输出处理程序。

使用指定的资源包本地化 msg 字符串。如果资源包名为 null,或者一个空 string 或无效,那么不本地化 msg 字符串。

注意,抛出的参数存储在 logrecord 抛出属性中,而不是存储在 logrecord 参数属性中。因此特别通过输出 formatter 来处理参数,而不是将其视为 logrecord 消息属性的格式化参数。

参数:
level - 某个消息级别标识符,例如 severe
sourceclass - 发出日志记录请求的类名
sourcemethod - 发出日志记录请求的方法名
bundlename - 本地化 msg 的资源包名,可以为 null
msg - 字符串消息(或消息类别中的键)
thrown - 与日志消息相关的可抛出对象。

entering

public void entering(string sourceclass,     string sourcemethod)
记录一个方法条目。

这是一个可为方法记录条目的便捷方法。记录带消息 "entry" 的 logrecord、日志级别 finer、给定的 sourcemethod 和 sourceclass。

参数:
sourceclass - 发出日志记录请求的类名
sourcemethod - 所输入的方法名

enteringjs随机数

public void entering(string sourceclass,     string sourcemethod,     object param1)
记录一个方法条目,带有一个参数。

这是一个可为方法记录条目的便捷方法。记录带消息 "entry {0}" 的 logrecord、日志级别 finer,以及给定的 sourcemethod、sourceclass 和参数。

参数:
sourceclass - 发出日志记录请求的类名
sourcemethod - 所输入的方法名
param1 - 所输入的方法参数

entering

public void entering(string sourceclass,     string sourcemethod,     object[] params)
记录一个方法条目,带有一组参数。

这是一个可为方法记录条目的便捷方法。记录带消息 "entry"(后跟格式 {n} 指示符表示参数数组中的每个条目)的 logrecord、日志级别 finer、给定的 sourcemethod、sourceclass 和参数。

参数:
sourceclass - 发出日志记录请求的类名
sourcemethod - 所输入的方法名
params - 所输入的一组方法参数

exiting

public void exiting(string sourceclass,    string sourcemethod)
记录一个方法返回。

这是一个便捷方法,可以用来记录一个方法的返回。记录带有消息 "return" 的 logrecord、日志级别 finer、给定的 sourcemethod 和 sourceclass。

参数:
sourceclass - 发出日志记录请求的类名
sourcemethod - 方法名

exiting

public void exiting(string sourceclass,    string sourcemethod,    object result)
记录一个方法返回,带有结果对象。

这是一个便捷方法,可以用来记录从方法返回对象。记录带消息 "return {0}" 的 logrecord、日志级别 finer、给定的 sourcemethod、sourceclass 和结果对象。

参数:
sourceclass - 发出日志记录请求的类名
sourcemethod - 方法名
result - 所返回的 object

throwing

public void throwing(string sourceclass,     string sourcemethod,     throwable thrown)
正抛出异常的记录。

这是一个便捷方法,可以用来记录某个方法抛出了异常并终止。使用 finer 级别进行日志记录。

如果当前对于给定的消息级别而言 logger 是启用的,那么将给定的参数存储在 logrecord 中,而 logrecord 则被转发到所有已注册的输出处理程序。将 logrecord 的消息设置为 "throw"。

注意,抛出的参数存储在 logrecord 抛出属性中,而不是存储在 logrecord 参数属性中。因此特别通过输出 formatter 来处理参数,而不是将其视为 logrecord 消息属性的格式化参数。

参数:
sourceclass - 发出日志记录请求的类名
sourcemethod - 方法名
thrown - 所抛出的可抛出对象

网站地图 手机端

severe

public void severe(string msg)
记录一条 severe 消息。

如果当前对于 severe 消息级别而言 logger 是启用的,那么将给定的消息转发到所有已注册的输出 handler 对象。

参数:
msg - 字符串消息(或消息类别中的键)

warning

public void warning(string msg)
记录一条 warning 消息。

如果当前对于 warning 消息级别而言 logger 是启用的,那么将给定的消息转发到所有已注册的输出 handler 对象。

参数:
msg - 字符串消息(或消息类别中的键)

info

public void info(string msg)
记录一条 info 消息。

如果当前对于 info 消息级别而言 logger 是启用的,那么将给定的消息转发到所有已注册的输出 handler 对象。

参数:
msg - 字符串消息(或消息类别中的键)

config

public void config(string msg)
记录一条 config 消息。

如果当前对于 config 消息级别而言 logger 是启用的,那么将给定的消息转发到所有已注册的输出 handler 对象。

参数:
msg - 字符串消息(或消息类别中的键)

fine

public void fine(string msg)
记录一条 fine 消息。

如果当前对于 fine 消息级别而言 logger 是启用的,那么将给定的消息转发到所有已注册的输出 handler 对象。

参数:
msg - 字符串消息(或消息类别中的键)

finer

public void finer(string msg)
记录一条 finer 消息。

如果当前对于 finer 消息级别而言 logger 是启用的,那么将给定的消息转发到所有已注册的输出 handler 对象。

参数:
msg - 字符串消息(或消息类别中的键)

finest

public void finest(string msg)
记录一条 finest 消息。

如果当前对于 finest 消息级别而言 logger 是启用的,那么将给定的消息转发到所有已注册的输出 handler 对象。

参数:
msg - 字符串消息(或消息类别中的键)

setlevel

public void setlevel(level newlevel)   throws securityexception
设置日志级别,指定此 logger 记录的消息级别。将级别低于此值的消息丢弃。可以使用级别值 level.off 来关闭日志记录。

如果新的级别为 null,则意味着此节点应该继承它最近的祖先(具有特定的非 null 级别值)的级别。

参数:
newlevel - 日志级别的新值。
抛出:
securityexception - 如果安全管理<managing>器存在并且调用者不具有 loggingpermission("control")。

getlevel

public level getlevel()
获取已为此 logger 指定的日志级别(level)。结果可能为 null,这意味着此 logger 的有效级别将继承它的父 logger。

返回:
此 logger 的级别

isloggable

public boolean isloggable(level level)
检查给定级别的消息实际上是否由此 logger 记录。此检查是根据 logger 的有效级别(可能继承自它的父 logger)进行的。

参数:
level - 消息日志记录的级别
返回:
如果当前正在记录给定的消息级别,则返回 true

getname

public string getname()
获取此 logger 的名称。

返回:
logger 的名称。对于匿名 logger 来说,名称为 null

addhandler

public void addhandler(handler handler)    throws securityexception
添加一个日志 handler 以接收日志记录消息。

在默认情况下,logger 还将其输出发送到它们的父 logger 中。通常,根 logger 配置有一组 handler,这些 handler 本质上作为所有 logger 的默认处理程序。

参数:
handler - 日志记录 handler
抛出:
securityexception - 如果安全管理器存在并且调用者不具有 loggingpermission("control")

removehandler

public void removehandler(handler handler)    throws securityexception
移除一个日志 handler。

如果无法找到给定的 handler 或其为 null,则静默返回。

参数:
handler - 日志记录 handler
抛出:
securityexception - 如果安全管理器存在并且调用者不具有 loggingpermission("control")。

gethandlers

public handler[] gethandlers()
获得与此 logger 相关的 handler。

返回:
一组已注册的 handler

setuseparenthandlers

public void setuseparenthandlers(boolean useparenthandlers)
指定此 logger 是否应该将其输出发送到它的父 logger。这意味着从名称空间向上递归,任何 logrecord 都将被写入到其父 handler,并且可能是祖父 handler。

参数:
useparenthandlers - 如果要将输出发送到其父 logger,则为 true。
抛出:
securityexception - 如果安全管理器存在并且调用者不具有 loggingpermission("control")。

getuseparenthandlers

public boolean getuseparenthandlers()
获知此 logger 是否将其输出发送到它的父 logger。

返回:
如果要将输出发送到其父 logger,则返回 true

getparent

public logger getparent()
返回此 logger 的父 logger。

此方法返回名称空间中最近的现存父 logger。因此,如果一个 logger 名为 "a.b.c.d",并且已经创建了一个名为 "a.b" 的 logger,但是不存在名为 "a.b.c" 的 logger,那么对 logger "a.b.c.d" 调用 getparent 将返回 logger "a.b"。

如果对名称空间中的根 logger 调用该方法,则结果为 null。

返回:
最近的现有父 logger

setparent

public void setparent(logger parent)
设置此 logger 的父 logger。名称空间改变时,由 logmanager 使用此方法来更新 logger。

不应该从应用程序代码中调用此方法。

参数:
parent - 新的父 logger
抛出:
securityexception - 如果安全管理器存在并且调用者不具有 loggingpermission("control")。

javatm platform
standard ed. 6

提交错误或意见<yì jian>
有关更多的 api 参考资料和开发人员文档,请参阅 java se 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作<gōng zuò>代码示例。

版权所有 2007 sun microsystems, inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策