logger.html
来自「j2se5-api-zh,java文档的中文版本」· HTML 代码 · 共 1,096 行 · 第 1/5 页
HTML
1,096 行
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><!--NewPage--><HTML><HEAD><!-- Generated by javadoc (build 1.5.0_03) on Wed Nov 02 09:52:08 CST 2005 --><META http-equiv="Content-Type" content="text/html; charset=gb2312"><TITLE>Logger (Java 2 Platform SE 5.0)</TITLE><META NAME="keywords" CONTENT="java.util.logging.Logger class"><LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style"><SCRIPT type="text/javascript">function windowTitle(){ parent.document.title="Logger (Java 2 Platform SE 5.0)";}</SCRIPT><NOSCRIPT></NOSCRIPT></HEAD><BODY BGCOLOR="white" onload="windowTitle();"><!-- ========= START OF TOP NAVBAR ======= --><A NAME="navbar_top"><!-- --></A><A HREF="#skip-navbar_top" title="跳过导航链接"></A><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""><TR><TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"><A NAME="navbar_top_firstrow"><!-- --></A><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> <TR ALIGN="center" VALIGN="top"> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>概述</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>软件包</B></FONT></A> </TD> <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>类</B></FONT> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/Logger.html"><FONT CLASS="NavBarFont1"><B>使用</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>树</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>已过时</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>索引</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>帮助</B></FONT></A> </TD> </TR></TABLE></TD><TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM><b>Java<sup><font size=-2>TM</font></sup> 2 Platform<br>Standard Ed. 5.0</b></EM></TD></TR><TR><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="Level.html" title="java.util.logging 中的类"><B>上一个类</B></A> <A HREF="LoggingMXBean.html" title="java.util.logging 中的接口"><B>下一个类</B></A></FONT></TD><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../../index.html@java_2Futil_2Flogging_2FLogger.html" target="_top"><B>框架</B></A> <A HREF="Logger.html" target="_top"><B>无框架</B></A> <SCRIPT type="text/javascript"> <!-- if(window==top) { document.writeln('<A HREF="../../../allclasses-noframe.html"><B>所有类</B></A>'); } //--></SCRIPT><NOSCRIPT> <A HREF="../../../allclasses-noframe.html"><B>所有类</B></A></NOSCRIPT></FONT></TD></TR><TR><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> 摘要: 嵌套 | <A HREF="#field_summary">字段</A> | <A HREF="#constructor_summary">构造方法</A> | <A HREF="#method_summary">方法</A></FONT></TD><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">详细信息: <A HREF="#field_detail">字段</A> | <A HREF="#constructor_detail">构造方法</A> | <A HREF="#method_detail">方法</A></FONT></TD></TR></TABLE><A NAME="skip-navbar_top"></A><!-- ========= END OF TOP NAVBAR ========= --><HR><!-- ======== START OF CLASS DATA ======== --><H2><FONT SIZE="-1">java.util.logging</FONT><BR>类 Logger</H2><PRE><A HREF="../../lang/Object.html" title="java.lang 中的类">java.lang.Object</A> <IMG SRC="../../../resources/inherit.gif" ALT="继承者 "><B>java.util.logging.Logger</B></PRE><HR><DL><DT><PRE>public class <B>Logger</B><DT>extends <A HREF="../../lang/Object.html" title="java.lang 中的类">Object</A></DL></PRE><P>Logger 对象用来记录特定系统或应用程序组件的日志消息。一般使用圆点分隔的层次命名空间来命名 Logger。Logger 名称可以是任意的字符串,但是它们一般应该基于被记录组件的包名或类名,如 java.net 或 javax.swing。此外,可以创建“匿名”的 Logger,其名称未存储在 Logger 命名空间中。 <p>可通过调用某个 getLogger 工厂方法来获得 Logger 对象。这些方法要么创建一个新 Logger,要么返回一个合适的现有 Logger。 <p>日志消息被转发到已注册的 Handler 对象,该对象可以将消息转发到各种目的地,包括控制台、文件、OS 日志等等。 <p>每个 Logger 都跟踪一个“父”Logger,也就是 Logger 命名空间中与其最近的现有祖先。 <p>每个 Logger 都有一个与其相关的 "Level"。这反映了此 logger 所关心的最低 Level。如果将 Logger 的级别设置为 <tt>null</tt>,那么它的有效级别继承自父亲,这可以通过其父亲一直沿树向上递归得到。 <p>可以根据日志配置文件的属性来配置日志级别,在 LogManager 类的描述中对此有所说明。但是也可以通过调用 Logger.setLevel 方法动态地改变它。如果日志级别改变了,则此变化也会影响它的孩子 logger,因为任何级别为 <tt>null</tt> 的孩子 logger 的有效级别都继承自它的父亲。 <p>对于每次日志记录调用,Logger 最初都依照 logger 的有效日志级别对请求级别(例如 SEVERE 或 FINE)进行简单的检查。如果请求级别低于日志级别,则立即返回日志记录调用。 <p>通过此初始(简单)测试后,Logger 将分配一个 LogRecord 来描述日志记录消息。接着调用 Filter(如果存在)进行更详细的检查,以确定是否应该发布该记录。如果检查通过,则将 LogRecord 发布到其输出 Handler。在默认情况下,logger 也将 LogRecord 沿树递推发布到其父的 Handler。 <p>每个 Logger 都有一个与其关联的 ResourceBundle 名称。该指定的包用于本地化日志消息。如果一个 Logger 没有自己的 ResourceBundle 名称,则它将通过其父亲沿树递归继承到 ResourceBundle 名称。 <p>大多数 logger 输出方法都带有 "msg" 参数。此 msg 参数可以是一个原始值,也可以是一个本地化的键。在格式化期间,如果 logger 具有(或继承)一个本地化 ResourceBundle,并且 ResourceBundle 包含 msg 字符串的映射关系,那么用本地化值替换 msg 字符串。否则使用原来的 msg 字符串。通常,格式化程序使用 java.text.MessageFormat 形式的格式来格式化参数,例如,格式字符串 "{0} {1}" 将两个参数格式化为字符串。 <p>将 ResourceBundle 名称映射到 ResourceBundle 时,Logger 首先试图使用该线程的 ContextClassLoader。如果 ContextClassLoader 为 null,则 Logger 将尝试 SystemClassLoader。作为初始实现中的临时过渡功能,如果 Logger 无法从 ContextClassLoader 或 SystemClassLoaderis 中找到一个 ResourceBundle,则 Logger 将会向上搜索类堆栈并连续调用 ClassLoader 来试图找到 ResourceBundle(此调用堆栈搜索是为了允许容器过渡到使用 ContextClassLoader,该功能可能在以后版本中取消)。 <p>格式化(包括本地化)是输出 Handler 的责任,它通常会调用格式化程序。 <p>注意,格式化不必同步发生。它可以延迟,直到 LogRecord 被实际写入到外部接收器。 <p>日志记录方法划分为 5 个主要类别: <ul> <li><p> 一系列的 "log" 方法,这种方法带有日志级别、消息字符串,以及可选的一些消息字符串参数。 <li><p>一系列的 "logp" 方法(即 "log precise"),其与 "log" 方法相似,但是带有显式的源类名称和方法名称。 <li><p>一系列的 "logrb" 方法(即 "log with resource bundle"),其与 "logp" 方法相似,但是带有显式的在本地化日志消息中使用的资源包名称。 <li><p>还有跟踪方法条目("entering" 方法)、方法返回("exiting" 方法)和抛出异常("throwing" 方法)的便捷方法。 <li><p>最后,还有一系列在非常简单的情况下(如开发人员只想为给定的日志级别记录一条简单的字符串)使用的便捷方法。这些方法按标准级别名称命名("severe"、"warning"、"info" 等等),并带有单个参数,即一个消息字符串。 </ul> <p>对于不带显式源名和方法名的方法,日志记录框架将尽可能确定日志记录方法中调用了哪个类和方法。但是应认识到,这样自动推断的信息可能只是近似的,甚至可能是完全错误的。这是因为允许虚拟机在 JIT 编译时可以进行广泛的优化,并且可以完全移除栈帧,导致它无法可靠地找到调用的类和方法。 <P>Logger 上执行的所有方法都是多线程安全的。 <p><b>子类化信息:</b>注意,对于命名空间中的任意点,LogManager 类都可以提供自身的指定 Logger 实现。因此,Logger 的任何子类(它们与新的 LogManager 类一起实现的情况除外)要注意应该从 LogManager 类获得一个 Logger 实例,并应该将诸如 "isLoggable" 和 "log(LogRecord)" 这样的操作委托给该实例。注意,为了截取所有的日志记录输出,子类只需要重写 log(LogRecord) 方法。所有其他日志记录方法作为在此 log(LogRecord) 方法上的调用而实现。<P><P><DL><DT><B>从以下版本开始:</B></DT> <DD>1.4</DD></DL><HR><P><!-- =========== FIELD SUMMARY =========== --><A NAME="field_summary"><!-- --></A><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"><B>字段摘要</B></FONT></TH></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>static <A HREF="Logger.html" title="java.util.logging 中的类">Logger</A></CODE></FONT></TD><TD><CODE><B><A HREF="Logger.html#global">global</A></B></CODE><BR> “全局”Logger 对象是向偶尔使用 Logging 包开发的人员提供的一种便捷方法。</TD></TR></TABLE> <!-- ======== CONSTRUCTOR SUMMARY ======== --><A NAME="constructor_summary"><!-- --></A><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"><B>构造方法摘要</B></FONT></TH></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>protected </CODE></FONT></TD><TD><CODE><B><A HREF="Logger.html#Logger(java.lang.String, java.lang.String)">Logger</A></B>(<A HREF="../../lang/String.html" title="java.lang 中的类">String</A> name, <A HREF="../../lang/String.html" title="java.lang 中的类">String</A> resourceBundleName)</CODE><BR> 构造一个用于指定子系统的 logger 的受保护的方法。</TD></TR></TABLE> <!-- ========== METHOD SUMMARY =========== --><A NAME="method_summary"><!-- --></A><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"><B>方法摘要</B></FONT></TH></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> void</CODE></FONT></TD><TD><CODE><B><A HREF="Logger.html#addHandler(java.util.logging.Handler)">addHandler</A></B>(<A HREF="Handler.html" title="java.util.logging 中的类">Handler</A> handler)</CODE><BR> 添加一个日志 Handler 以接收日志记录消息。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> void</CODE></FONT></TD><TD><CODE><B><A HREF="Logger.html#config(java.lang.String)">config</A></B>(<A HREF="../../lang/String.html" title="java.lang 中的类">String</A> msg)</CODE><BR> 记录一条 CONFIG 消息。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> void</CODE></FONT></TD>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?