国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

深探j(luò)ava.util.logging包

2019-11-18 13:46:26
字體:
供稿:網(wǎng)友

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.已經(jīng)被具體描述。這個(gè)文檔的目標(biāo)是提供要害元素的概要。

 



1.1 Overview of Control Flow 控制流概要

應(yīng)用程序調(diào)用Logger對(duì)象來記錄日志。(例1.1) Loggers被以一種層次命名形式來組織起來,并且子Logger可能自它們的父Logger中繼續(xù)一些屬性。(例1.2)

 



應(yīng)用程序調(diào)用Logger對(duì)象來記錄日志。這些Logger對(duì)象定位LogRecord對(duì)象,這是一些被傳送到Handler對(duì)象發(fā)布的對(duì)象(例1.3)。Loggers和Handlers都使用日志級(jí),和(可選)過濾器來決定是否它們對(duì)某個(gè)特定記錄感愛好(例1.4)。當(dāng)需要發(fā)布一個(gè)記錄,一個(gè)Handler可以使用一個(gè)Formatter來局部化和格式化這條信息,對(duì)發(fā)布到I/O流之前(例1.5)。





每個(gè)Logger保持跟蹤一些輸出Handlers。默認(rèn)情況下所有Loggers也發(fā)送它們的輸出到它們的父Logger(例1.5)。但Logger也可能被配置成忽略上層的Handlers.(例1.6)

 



一些Handlers可能直接輸出到其它Handlers. 例如,MemoryHandler維護(hù)一個(gè)LogRecord的內(nèi)部環(huán)緩沖,并在觸發(fā)事件它發(fā)布它的LogRecords通過一個(gè)目標(biāo)Handler.在這種情況,任何信息都被鏈的最后Handler處理。



這些APIS都是有結(jié)構(gòu)的,所以即使logging被禁用Logger APIS也是輕量級(jí)的。假如Logging在給出的日志級(jí)別被禁用,Logger會(huì)執(zhí)行一個(gè)輕量的比較測(cè)試和返回。假如logging在指定的級(jí)別被啟用,Logger仍然小心地把化費(fèi)盡可能減少,在傳LogRecord進(jìn)入Handlers的時(shí)候。 非凡地,本地化和格式化是延時(shí)的,當(dāng)Handler請(qǐng)求它們的時(shí)候。例如,一個(gè)MemoryHandler可以維護(hù)一個(gè)LogRecords的通知緩沖,在沒有化費(fèi)格式化的時(shí)間。

 



1.       2Log Levels

每個(gè)日志信息都有一個(gè)相關(guān)的日志級(jí)。 這個(gè)級(jí)別粗糙指導(dǎo)日志信息的重要性和緊急性。Log Level 對(duì)象封裝成一個(gè)整數(shù),較高的數(shù)值代表較高的優(yōu)先級(jí)。

 



Level類定義了七個(gè)標(biāo)準(zhǔn)日志級(jí)。范圍從FINEST(最低優(yōu)先級(jí),最小數(shù)值)到SERVER(最高優(yōu)先組,最大數(shù)值)

 



1.       3Loggers

正如前面規(guī)定的,客戶代碼發(fā)送一個(gè)日志請(qǐng)求到Logger對(duì)象。每個(gè)Logger保持跟蹤它感愛好的日志級(jí),并丟棄小于這個(gè)級(jí)別的日志。

 



Loggers通常以實(shí)體命名,使用點(diǎn)分隔符命名,例如”java.awt”.這個(gè)命名空間是層次的,并于LogManager治理. 這個(gè)命名空間通常應(yīng)該由JAVA包名字空間組織. 但不一定要跟隨..例如,一個(gè)Logger名叫”java.awt”有可能處理一個(gè)java.awt包的日志請(qǐng)求,但也可能處理一個(gè)在sun.awt中的一個(gè)類的日志請(qǐng)求.

 



別外,也可以創(chuàng)建一個(gè)匿名Logger, 一個(gè)不出現(xiàn)在共享命名空間的Logger. 具體看1.14.

 



Logger跟蹤它們的父Logger在日志命名空間. 一個(gè)Logger的父是它最近的祖先,在日志命名空間. 根Logger(名叫 ””)沒有父. Anonymous logger are all given the root logger as their parent. Logger可能繼續(xù)多個(gè)屬性從它們的父(在Logger命名空間). 非凡的,一個(gè)logger可能繼續(xù):

       *日志級(jí)別. 假如一個(gè)Logger的級(jí)別是設(shè)置為null,那么這個(gè)日志會(huì)從父日志中繼續(xù)第一個(gè)非null級(jí)別.

       *Handlers.默認(rèn)一個(gè)Logger會(huì)記錄任何輸出信息到它的父Handlers.,并在樹中遞歸.

       *資源包名. 假如一個(gè)日志有一個(gè)null資源包名,那么它會(huì)繼續(xù)任何定義給它的父日志的資源包,并在樹中遞歸.

 



1.4   Logging Methods

Logger類提供大量方便的方法來產(chǎn)生日志信息. 為了方便,有針對(duì)每個(gè)級(jí)別的方法,以日志級(jí)別命名. 例如叫”loger.log(Constants.WARING,…” 開發(fā)者可以調(diào)用方便的方法”:logger.warning(…”

 



有兩種日志風(fēng)格,適應(yīng)不同風(fēng)格的用戶.

 



第一,有直接取得源類和源方法名的方法.這些方法是用來給開發(fā)者用的, 一些想快速定位日志信息的源的人. 這個(gè)風(fēng)格的例子是:

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

第二, 有許多方法不直接取得源類和源方法名. 這些方法是用來給開發(fā)者用的, 一些想輕易使用logging和不需要具體源信息的開發(fā)者.

第二種法方,Logging框架會(huì)盡力檢測(cè)那個(gè)類和方法調(diào)用logging,并會(huì)添加這些信息到LogRecord.. 然而,很重要的是自動(dòng)檢測(cè)可能只是大約.

1.5   Handlers

StreamHandler

ConsoleHandler

FileHandler

SocketHandler

MemoryHandler

1.6   Formatters

SimpleFormatter

XMLFormatter

1.       7 logManager

有一個(gè)全局LogManager對(duì)象跟蹤全局日志信息.這包含:

Logger的層次命名空間.

用配置文件讀取的Logging控制屬性

有一個(gè)并只有一個(gè)LogManager對(duì)像可以通過使用靜態(tài)LogManager.getLogManager方法取得..

1.8   Configuration File

Logging配置可以使用一個(gè)logging配置文件(會(huì)在啟動(dòng)是被讀取)來初始化.這個(gè)配置文件是以java.util.PRoperties的標(biāo)準(zhǔn)格式實(shí)現(xiàn)的.

該默認(rèn)配置文件的位置和使用方法如下:

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配置可以通過一個(gè)類(可以用來讀取初始化信息的類)來初始化.這個(gè)機(jī)制充許配置數(shù)據(jù)從多種源讀取,例如LDAP,JDBC等等.具體看LogManager API Specification.

有一些全局配置信息.,這些信息在LogManager描述中已具體說明,并包含一系列在啟動(dòng)是安裝的root-level Handlers

初始化配置可以指定級(jí)別針對(duì)特定的loggers. 這些級(jí)別衩應(yīng)用來已命令的logger 和任何在它的命令層次以下的logger. 各種級(jí)別以它們?cè)谂渲梦募卸x的順序來應(yīng)用.

 



初始配置可以包含任意的屬性,供Handlers或運(yùn)行日志子系統(tǒng)的使用. 為了方便,這些屬性應(yīng)該以handler類或主Logger的句子作為開頭.

 



例如,MemoryHandler使用一個(gè)屬性”java.util.logging.MemoryHandler.size”來決定默認(rèn)ring緩沖大小.

1.9   default configuration

JRE上的默認(rèn)配置只是一個(gè)默認(rèn),它可以被ISVs, 系統(tǒng)治理員, 和最終用戶改變.

默認(rèn)配置只限制磁盤空間. 這不提供給用戶洪水般的信息,但保證捕捉要害錯(cuò)誤信息.

默認(rèn)配置封裝一個(gè)單獨(dú)handler在root logger, 用來發(fā)送信息到控制臺(tái).

1.10  dynamic configuration updates

程序可以更新logging配置在運(yùn)行時(shí)刻,使用以下的任意一種方法:

FileHandlers, MemoryHandlers and PrintHandlers 都可以以多種屬性創(chuàng)建.

新Handlers可以添加,并舊的可以刪除.

新Logger可以被創(chuàng)建并被特定Handlers支持.

級(jí)別可以在Handlers上設(shè)置.

1.       11私有方法

logging沒有私有方法

1.12XML       DTD

       XML DTD是被XMLFormatter使用的.

DTD是設(shè)計(jì)來以”<log>”元素作為頂層文檔,單獨(dú)log記錄被以”<record>”元素記錄.

注重, 在JVM崩潰的事件中,它有可能沒有被以</log>屬性清楚終止一個(gè)XMLFormatter流.. 因此分析log記錄的工具應(yīng)該要預(yù)備沒有終結(jié)的流.

1.13  Unique Message IDS

JAVA API不提供該功能,因此程序必需自己實(shí)現(xiàn),并在信息字串中包含.

1.   &

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 蒙山县| 高安市| 柳州市| 枣强县| 吕梁市| 辰溪县| 台州市| 衡水市| 甘孜县| 苗栗市| 乐山市| 广水市| 广宁县| 白玉县| 龙江县| 贵德县| 三台县| 襄樊市| 宁化县| 德江县| 菏泽市| 广德县| 贞丰县| 海淀区| 莱芜市| 锦屏县| 色达县| 固安县| 峨边| 航空| 满城县| 庄浪县| 义乌市| 贡觉县| 砚山县| 临西县| 丰台区| 湖州市| 青州市| 巴楚县| 吴桥县|