- 将日志消息导出至记录代理程序的功能
org.eclipse.hyades.logging.java 包下面的
java.util.logging.Handler 抽象类的扩展允许配置记录器以将日志消息导出至“记录代理程序”。
此 org.eclipse.hyades.logging.java.LoggingAgentHandler
处理程序检查写至记录器的 java.util.logging.LogRecord
日志消息能否根据处理程序的过滤器和记录级别来记录。如果要记录日志消息,则使用记录消息的记录器名创建“记录代理程序”。消息是使用
org.eclipse.hyades.logging.java.XmlFormatter 格式化的,并且写至“记录代理程序”。
- 将日志消息转换为 XML 的功能
org.eclipse.hyades.logging.java 包下面的 java.util.logging.Formatter
抽象类的扩展允许 org.eclipse.hyades.logging.java.LoggingAgentHandler
和其它处理程序将 java.util.logging.LogRecord 日志消息格式化为 XML。此
org.eclipse.hyades.logging.java.XmlFormatter
格式化程序将 java.util.logging.LogRecord
消息转换为等同于 org.eclipse.hyades.internal.logging.core.XmlGenerator
实现的 XML,但排除主机、进程和代理程序标记。生成的 XML 未格式化,最高嵌套级别设置为
4。格式化时,会检查对象是否实现
org.eclipse.hyades.logging.core.IExternalizableToXml 接口。如果实现的话,则由于性能原因,会通过自省来调用
externalizeCanonicalXmlString() API 以代替 XML 串行化。
以下输出举例说明日志消息( 字符串“Hello World”(SEVERE 记录级别))的 XML 转换:
<LogRecord logging.util.id="java.util.logging.LogRecord_10468105484720000"
logging.util.agent_idref="org.eclipse.hyades.tests.java.JavaLoggingTest"
logging.util.MsgLoggerLevel="SEVERE" LoggerName="org.eclipse.hyades.tests.java.JavaLoggingTest"
ResourceBundleName="null" SequenceNumber="0" SourceClassName="org.eclipse.hyades.tests.java.JavaLoggingTest"
SourceMethodName="main" Message="Hello World" ThreadID="10"
Millis="1046810548171">
<ResourceBundle Instance_Name="ResourceBundle" Value="null"/>
<Level Instance_Name="Level" logging.util.id="java.util.logging.Level_10468105484720001"
ResourceBundleName="sun.util.logging.resources.logging" Name="SEVERE"
LocalizedName="SEVERE"><Class Instance_Name="Class" logging.util.id="java.lang.Class_10468105484720002"
Name="java.util.logging.Level" Type="class" Package="java.util.logging"
Modifers="public" Superclass="java.lang.Object" />
</Level>
<Array Instance_Name="Parameters" Value="null" />
<Throwable Instance_Name="Thrown" Value="null" />
<Class Instance_Name="Class" logging.util.id="java.lang.Class_10468105484820000"
Name="java.util.logging.LogRecord" Type="class" Package="java.util.logging"
Modifers="public" Superclass="java.lang.Object" />
</LogRecord>
- 将扩展类引导至现有 Java 记录 API 的功能
要将 org.eclipse.hyades.logging.java14 扩展类引导至 JDK 1.4.0
及以上版本中的现有“Java 记录”API,必须在 VM 启动或调用
java.util.logging.LogManager.readConfiguration() API 之前将下列条目添加至
JRE_HOME\lib\logging.properties 配置文件:
handlers= <your current handlers>, org.eclipse.hyades.logging.java.LoggingAgentHandler
org.eclipse.hyades.logging.java.LoggingAgentHandler.formatter = org.eclipse.hyades.logging.java.XmlFormatter
或者,可以在运行时分别使用 addHandler() 和 setFormatter() API
使用程序在“记录器”(例如,处理程序)和“处理程序”(例如,格式化程序)上将
org.eclipse.hyades.logging.java14 插件扩展类与 JDK 1.4.0
及以上版本中的现有“Java 记录”API 配合使用()。
- 将“公共基本事件”包括在日志记录中的功能
org.eclipse.hyades.logging.java 包下面的 java.util.logging.LogRecord
类的扩展使您能够创建定制日志记录以将 org.eclipse.hyades.logging.events.ICommonBaseEvent
包括在 java.util.logging.LogRecord 中。
此 org.eclipse.hyades.logging.java.CommonBaseEventLogRecord 只扩展
java.util.logging.LogRecord,它包含对
org.eclipse.hyades.logging.events.ICommonBaseEvent 的单个引用。在写至 java.util.logging.Logger
之前,由您负责创建新的 org.eclipse.hyades.logging.java.CommonBaseEventLogRecord 对象。
- 允许过滤掉已记录的记录以使处理程序类不处理它们的功能
通过设置诸如 org.eclipse.hyades.logging.java.CommonBaseEventFilter(只允许
org.eclipse.hyades.logging.java.CommonBaseEventLogRecord 成功记录)之类的 java.util.logging.Filter
接口的实现并将 java.util.logging.Level 记录在处理程序上,可以过滤已记录的记录以使
org.eclipse.hyades.logging.java.LoggingAgentHandler 类不处理它们。可以在运行时分别使用
setFilter() 和 setLevel() API 使用程序设置这些值。
或者,在 VM 启动或调用 java.util.logging.LogManager.readConfiguration() API
之前,可以将下列条目添加至 JRE_HOME\lib\logging.properties 配置文件:
org.eclipse.hyades.logging.java.LoggingAgentHandler.level = <level>
org.eclipse.hyades.logging.java.LoggingAgentHandler.filter = org.eclipse.hyades.logging.java.CommonBaseEventFilter
- 为 java.lang.Object 和 java.lang.Throwable 创建定制记录器的功能
org.eclipse.hyades.logging.commons 包下面的
org.apache.commons.logging.Log 接口的实现使您能够创建定制记录器以便使用记录器的名称将
java.lang.Object 和 java.lang.Throwable 记录至“记录代理程序”。
此 org.eclipse.hyades.logging.commons.Logger 检查写至记录器的
java.lang.Object 和/或 java.lang.Throwable 日志消息能否根据记录器的记录级别来记录。如果要记录日志消息,则使用
org.eclipse.hyades.internal.logging.core.XmlGenerator 格式化 java.lang.Object 和 java.lang.Throwable log
消息并写至“记录代理程序”。格式化时,会检查对象是否实现 org.eclipse.hyades.logging.core. IExternalizableToXml 接口。如果实现的话,则由于性能原因,会通过自省来调用
externalizeCanonicalXmlString() API 以代替 XML 串行化。要将 org.eclipse.hyades.logging.commons.Logger
类引导至 org.apache.commons.logging.LogFactory 类,必须在 VM 启动时设置以下系统属性:
-Dorg.apache.commons.logging.Log=org.eclipse.hyades.logging.commons.Logger
(C) Copyright IBM Corporation 2000, 2003. All Rights Reserved.