王朝网络
分享
 
 
 

深探java.util.logging包

王朝java/jsp·作者佚名  2008-05-31
宽屏版  字体: |||超大  

1.0 Java Logging Overview 1.1 Overview of Control Flow 1.2 Log Levels 1.3 Loggers 1.4 Logging Methods 1.5 Handlers 1.6 Formatters 1.7 The LogManager 1.8 Configuration File 1.9 Default Configuration 1.10 Dynamic Configuration Updates 1.11 Native Methods 1.12 XML DTD 1.13 Unique Message IDs 1.14 Security 1.15 Configuration Management 1.16 Packaging 1.17 Localization 1.18 Remote Access and Serialization2.0 Examples 2.1 Simple Use 2.2 Changing the Configuration 2.3 Simple Use, Ignoring Global Configuration 2.4 Sample XML Output3.0 Appendix A: DTD for XMLFormatter Output

1.0 JavaTM Logging Overview

Logging APIS在J2SE API Specification.已经被具体描述。这个文档的目标是提供要害元素的概要。

1.1 Overview of Control Flow 控制流概要

应用程序调用Logger对象来记录日志。(例1.1) Loggers被以一种层次命名形式来组织起来,并且子Logger可能自它们的父Logger中继续一些属性。(例1.2)

应用程序调用Logger对象来记录日志。这些Logger对象定位LogRecord对象,这是一些被传送到Handler对象发布的对象(例1.3)。Loggers和Handlers都使用日志级,和(可选)过滤器来决定是否它们对某个特定记录感爱好(例1.4)。当需要发布一个记录,一个Handler可以使用一个Formatter来局部化和格式化这条信息,对发布到I/O流之前(例1.5)。

每个Logger保持跟踪一些输出Handlers。默认情况下所有Loggers也发送它们的输出到它们的父Logger(例1.5)。但Logger也可能被配置成忽略上层的Handlers.(例1.6)

一些Handlers可能直接输出到其它Handlers. 例如,MemoryHandler维护一个LogRecord的内部环缓冲,并在触发事件它发布它的LogRecords通过一个目标Handler.在这种情况,任何信息都被链的最后Handler处理。

这些APIS都是有结构的,所以即使logging被禁用Logger APIS也是轻量级的。假如Logging在给出的日志级别被禁用,Logger会执行一个轻量的比较测试和返回。假如logging在指定的级别被启用,Logger仍然小心地把化费尽可能减少,在传LogRecord进入Handlers的时候。 非凡地,本地化和格式化是延时的,当Handler请求它们的时候。例如,一个MemoryHandler可以维护一个LogRecords的通知缓冲,在没有化费格式化的时间。

1. 2Log Levels

每个日志信息都有一个相关的日志级。 这个级别粗糙指导日志信息的重要性和紧急性。Log Level 对象封装成一个整数,较高的数值代表较高的优先级。

Level类定义了七个标准日志级。范围从FINEST(最低优先级,最小数值)到SERVER(最高优先组,最大数值)

1. 3Loggers

正如前面规定的,客户代码发送一个日志请求到Logger对象。每个Logger保持跟踪它感爱好的日志级,并丢弃小于这个级别的日志。

Loggers通常以实体命名,使用点分隔符命名,例如”java.awt”.这个命名空间是层次的,并于LogManager治理. 这个命名空间通常应该由JAVA包名字空间组织. 但不一定要跟随..例如,一个Logger名叫”java.awt”有可能处理一个java.awt包的日志请求,但也可能处理一个在sun.awt中的一个类的日志请求.

别外,也可以创建一个匿名Logger, 一个不出现在共享命名空间的Logger. 具体看1.14.

Logger跟踪它们的父Logger在日志命名空间. 一个Logger的父是它最近的祖先,在日志命名空间. 根Logger(名叫 ””)没有父. Anonymous logger are all given the root logger as their parent. Logger可能继续多个属性从它们的父(在Logger命名空间). 非凡的,一个logger可能继续:

*日志级别. 假如一个Logger的级别是设置为null,那么这个日志会从父日志中继续第一个非null级别.

*Handlers.默认一个Logger会记录任何输出信息到它的父Handlers.,并在树中递归.

*资源包名. 假如一个日志有一个null资源包名,那么它会继续任何定义给它的父日志的资源包,并在树中递归.

1.4 Logging Methods

Logger类提供大量方便的方法来产生日志信息. 为了方便,有针对每个级别的方法,以日志级别命名. 例如叫”loger.log(Constants.WARING,…” 开发者可以调用方便的方法”:logger.warning(…”

有两种日志风格,适应不同风格的用户.

第一,有直接取得源类和源方法名的方法.这些方法是用来给开发者用的, 一些想快速定位日志信息的源的人. 这个风格的例子是:

void warning(String source Class, String Source Method, String msg);

第二, 有许多方法不直接取得源类和源方法名. 这些方法是用来给开发者用的, 一些想轻易使用logging和不需要具体源信息的开发者.

第二种法方,Logging框架会尽力检测那个类和方法调用logging,并会添加这些信息到LogRecord.. 然而,很重要的是自动检测可能只是大约.

1.5 Handlers

StreamHandler

ConsoleHandler

FileHandler

SocketHandler

MemoryHandler

1.6 Formatters

SimpleFormatter

XMLFormatter

1. 7 logManager

有一个全局LogManager对象跟踪全局日志信息.这包含:

Logger的层次命名空间.

用配置文件读取的Logging控制属性

有一个并只有一个LogManager对像可以通过使用静态LogManager.getLogManager方法取得..

1.8 Configuration File

Logging配置可以使用一个logging配置文件(会在启动是被读取)来初始化.这个配置文件是以java.util.Properties的标准格式实现的.

该默认配置文件的位置和使用方法如下:

c:\program files\java\jdk1.5.0\jre\lib\logging.properties

D:\java>java -Djava.util.logging.config.file=d:\java\logging.properties testLogg

er

另一种选择,logging配置可以通过一个类(可以用来读取初始化信息的类)来初始化.这个机制充许配置数据从多种源读取,例如LDAP,JDBC等等.具体看LogManager API Specification.

有一些全局配置信息.,这些信息在LogManager描述中已具体说明,并包含一系列在启动是安装的root-level Handlers

初始化配置可以指定级别针对特定的loggers. 这些级别衩应用来已命令的logger 和任何在它的命令层次以下的logger. 各种级别以它们在配置文件中定义的顺序来应用.

初始配置可以包含任意的属性,供Handlers或运行日志子系统的使用. 为了方便,这些属性应该以handler类或主Logger的句子作为开头.

例如,MemoryHandler使用一个属性”java.util.logging.MemoryHandler.size”来决定默认ring缓冲大小.

1.9 default configuration

JRE上的默认配置只是一个默认,它可以被ISVs, 系统治理员, 和最终用户改变.

默认配置只限制磁盘空间. 这不提供给用户洪水般的信息,但保证捕捉要害错误信息.

默认配置封装一个单独handler在root logger, 用来发送信息到控制台.

1.10 dynamic configuration updates

程序可以更新logging配置在运行时刻,使用以下的任意一种方法:

FileHandlers, MemoryHandlers and PrintHandlers 都可以以多种属性创建.

新Handlers可以添加,并旧的可以删除.

新Logger可以被创建并被特定Handlers支持.

级别可以在Handlers上设置.

1. 11私有方法

logging没有私有方法

1.12XML DTD

XML DTD是被XMLFormatter使用的.

DTD是设计来以”<log>”元素作为顶层文档,单独log记录被以”<record>”元素记录.

注重, 在JVM崩溃的事件中,它有可能没有被以</log>属性清楚终止一个XMLFormatter流.. 因此分析log记录的工具应该要预备没有终结的流.

1.13 Unique Message IDS

JAVA API不提供该功能,因此程序必需自己实现,并在信息字串中包含.

1. &

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有