版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1第10章 Log4j的應(yīng)用學(xué)前提示本章將從什么是Log4j、Log4j的配置、Java程序中如何調(diào)用Log4j等方面來(lái)講解Log4j的使用。知識(shí)要點(diǎn)Log4j下載與配置Log4j的使用Log4j的性能調(diào)優(yōu)commons-logging的使用210.1Log4j概述日志(Log)是指記錄程序運(yùn)行時(shí)狀態(tài)信息的文本。在應(yīng)用程序中進(jìn)行日志記錄,主要有以下幾個(gè)目的:監(jiān)視代碼中變量的變化情況,周期性地記錄到文件中,供其他應(yīng)用進(jìn)行統(tǒng)計(jì)和分析工作。將代碼運(yùn)行時(shí)的軌跡作為日后審計(jì)的依據(jù)。擔(dān)當(dāng)集成開(kāi)發(fā)環(huán)境中的調(diào)試器的作用,向文件或控制臺(tái)打印代碼的調(diào)試信息。Log4j是Apache的一個(gè)開(kāi)放源代碼項(xiàng)目,通過(guò)使用Log4j,可以控制日志信息輸送的目的地是控制臺(tái)、文件、GUI組件,甚至是套接口服務(wù)器、事件記錄器、UnixSyslog守護(hù)進(jìn)程等;用戶也可以控制每一條日志的輸出格式;通過(guò)定義每一條日志信息的級(jí)別,能夠更加細(xì)致地控制日志的生成過(guò)程。并且可以通過(guò)配置文件靈活地設(shè)置日志信息的優(yōu)先級(jí)、日志信息的輸出目的地以及日志信息的輸出格式。310.1Log4j概述Log4j中有三個(gè)主要的組件,它們分別是Logger、Appender和Layout,即日志寫入器、日志輸出終端和日志布局模式。Log4j的類結(jié)構(gòu)如圖10.1所示。410.1.1日志記錄器(Logger)org.apache.log4j.Logger類的實(shí)例是用來(lái)取代System.out或者System.err的日志寫出器的,主要用來(lái)輸出日志信息??梢酝ㄟ^(guò)以下方式來(lái)獲取Logger類的實(shí)例://根據(jù)指定名稱來(lái)獲取一個(gè)日志記錄器實(shí)例Loggerlogger=Logger.getLogger(Stringname);//根據(jù)指定的類信息中的類名獲取一個(gè)日志記錄實(shí)例Loggerlogger=Logger.getLogger(Classclazz);獲取Logger實(shí)例之后,就可以使用它提供的以下方法來(lái)記錄日志了:參見(jiàn)教材P343510.1.1日志記錄器(Logger)Log4j中定義了5種日志輸出優(yōu)先級(jí)別,來(lái)靈活控制輸出的日志內(nèi)容,按照優(yōu)先級(jí)別由高到低排列,如表10.1所示。610.1.2日志輸出目的地(Appender)Appender的功能是把格式化好的日志信息輸出到指定的目的地中。執(zhí)行日志輸出語(yǔ)句時(shí),Logger對(duì)象將接收來(lái)自日志語(yǔ)句的記錄請(qǐng)求,然后發(fā)送至Appender,Appender將輸出結(jié)果寫入到用戶指定的目的地。日志目的地是通過(guò)Log4j的配置文件來(lái)指定的。對(duì)于不同的日志目的地,Log4j提供不同的Appender類型的實(shí)現(xiàn)類。常用的Appender實(shí)現(xiàn)類包括:用于控制臺(tái)的org.apache.log4j.ConsoleAppender。用于文件的org.apache.log4j.FileAppender。org.apache.log4j.RollingFileAppender——文件到達(dá)指定大小時(shí)產(chǎn)生一個(gè)新的文件。org.apache.log4j.DailyRollingFileAppender——每天產(chǎn)生一個(gè)日志文件。用于以流格式發(fā)送到任意位置的org.apache.log4j.WriterAppender。用于添加到數(shù)據(jù)庫(kù)的org.apache.log4j.jdbc.JDBCAppender。用于郵件發(fā)送的.SMTPAppender。710.1.3日志格式化器(Layout)Layout用來(lái)把日志消息按指定的格式格式化成字符串。而具體的格式是通過(guò)Log4j的配置文件來(lái)配置的。Log4j中提供用來(lái)格式化輸出結(jié)果的各種布局實(shí)現(xiàn)類。org.apache.log4j.SimpleLayoutorg.apache.log4j.PatternLayoutorg.apache.log4j.TTCCLayoutorg.apache.log4j.HTMLLayoutorg.apache.log4j.xml.XMLLayout810.2Log4j的下載與環(huán)境搭建Log4j的下載地址是/dist/logging/log4j/,下載頁(yè)面如圖10.2所示。解壓此文件,打開(kāi)解壓后的文件夾,如圖10.3所示。將dis\lib目錄下的log4j-1.2.9.jar放置到項(xiàng)目的classpath中,對(duì)于Web項(xiàng)目,則需要將其放置于項(xiàng)目的WEB-INF\lib目錄下,便完成了Log4j的配置。910.3Log4j的使用Log4j受眾多、用戶青睞的原因之一,是因?yàn)樗梢允褂门渲梦募?,使?yīng)用程序能更加靈活地配置log日志輸出方式,包括輸出優(yōu)先級(jí)、輸出目的地、輸出格式。所以本節(jié)首先介紹Log4j的配置文件,其次介紹它的使用技巧。1010.3.1Log4j的配置文件1.perties(1) 配置根日志記錄器(2) 配置日志信息輸出目的地Appender。(3) 配置日志信息的格式(布局)(4) 配置打印格式。(5) 其他設(shè)置。2.log4j.xml1110.3.2Log4j的使用當(dāng)配置文件編寫配置好之后,就可以使用Log4j的API進(jìn)行日志記錄了。它的使用也比較簡(jiǎn)單,在講解之前,先打開(kāi)docs\api目錄下的index.html,這是Log4j的幫助文檔,它有助于本小節(jié)的學(xué)習(xí)。幫助文檔的首頁(yè)如圖10.5所示。1210.3.2Log4j的使用在Java代碼中使用Log4j打印日志信息的具體步驟如下。(1) 獲取記錄器(2) 讀取配置文件(3) 插入記錄信息(格式化日志信息)下面通過(guò)用一個(gè)簡(jiǎn)單的實(shí)例程序來(lái)進(jìn)一步說(shuō)明Log4j的使用方法。新建名為L(zhǎng)ogTest.java的文件,程序代碼如下:參見(jiàn)教材P350LogTest.java文件中所使用perties文件的代碼清單如下:參見(jiàn)教材P3501310.4Log4j實(shí)例應(yīng)用本例是在第8章中jstlinstance示例的基礎(chǔ)上完成的,如果前面的示例沒(méi)有完成,建議先完成第8章的程序。然后按照以下步驟進(jìn)行修改。(1) 新建perties文件。(2) 修改StuServlet.java文件(3) 修改StuBeanDaoImpl.java文件(4) 部署程序,啟動(dòng)Tomcat服務(wù),訪問(wèn)程序。1410.5Log4j的性能調(diào)優(yōu)Log4j作為日志記錄工具,它最終還是要在程序代碼中添加信息輸出語(yǔ)句。所以,對(duì)應(yīng)用程序運(yùn)行的性能肯定會(huì)有一些影響,具體影響因素如下:日志輸出的目的地。日志的輸出格式。日志的輸出級(jí)別。1510.6使用commons-logging10.6.1commons-logging概述commons-logging是Apache組織下的一個(gè)開(kāi)源日志項(xiàng)目。commons-logging在運(yùn)行時(shí)能夠幫我們自動(dòng)選擇適當(dāng)?shù)娜罩緦?shí)現(xiàn)系統(tǒng),這一點(diǎn)非常人性化。而且它甚至可以不需要配置就能自動(dòng)選擇適當(dāng)?shù)娜罩緦?shí)現(xiàn)系統(tǒng)。1610.6.1commons-logging概述commons-logging在運(yùn)行時(shí):(1) 首先會(huì)在classpath下尋找自己的配置文件perties。如果找到,則會(huì)使用其中指定的Log實(shí)現(xiàn)類。(2) 如果找不到perties配置文件,則再查找是否已定義系統(tǒng)環(huán)境變量mons.logging.Log,找到則使用其定義的Log實(shí)現(xiàn)類。(3) 否則,查看classpath中是否有Log4j的包,如果發(fā)現(xiàn),則自動(dòng)使用Log4j作為日志實(shí)現(xiàn)類。(4) 否則,使用JDK自身的日志實(shí)現(xiàn)類(JDK1.4以后才有日志實(shí)現(xiàn)類)。(5) 最后,如果還沒(méi)找到,就使用commons-logging自己提供的一個(gè)簡(jiǎn)單的日志實(shí)現(xiàn)類SimpleLog。1710.6.2commons-logging的下載和環(huán)境搭建可以到/downloads/download_logging.cgi下載commons-logging包。下載頁(yè)面如圖10.11所示。單擊頁(yè)面中的“1.1.1.zip”鏈接,即可下載commons-logging-1.1.1-bin.zip到本地硬盤。解壓此文件,打開(kāi)解壓后的文件夾,如圖10.12所示。1810.6.3commons-logging的使用完成以上配置之后,就可以在項(xiàng)目中使用commons-logging了。使用前,還需要了解它的API。在commons-logging的API中需要關(guān)注一個(gè)抽象類和一個(gè)接口。(1) mons.logging.Logpublicvoiddebug(Objectmsg)publicvoiddebug(Objectmsg,Throwablet):publicbooleanisDebugEnabled()(2) mons.logging.LogFactorypublicstaticLoggetLog(Stringname)throwsLogConfigurationExcep
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 租賃車輛合同協(xié)議文本
- 大客戶采購(gòu)合同的監(jiān)管措施
- 瓦工工種勞務(wù)分包合作協(xié)議
- 網(wǎng)絡(luò)技術(shù)服務(wù)合同示范文本樣本
- 個(gè)性化印刷采購(gòu)協(xié)議
- 電子行業(yè)專用包裝材料購(gòu)銷合同
- 拖車運(yùn)輸服務(wù)協(xié)議
- 工程分包所需勞務(wù)合同
- 房屋買賣合同簽訂前的房屋質(zhì)量檢查
- 網(wǎng)絡(luò)打印機(jī)選購(gòu)協(xié)議
- 帶你聽(tīng)懂中國(guó)傳統(tǒng)音樂(lè)智慧樹(shù)知到期末考試答案2024年
- 南京市秦淮區(qū)2022-2023七年級(jí)上學(xué)期期中語(yǔ)文試卷及答案
- 肺癌伴咯血護(hù)理查房
- 上海市監(jiān)理通用表
- 學(xué)校歸屬感量表
- 2024全新《廉潔協(xié)議》-(多場(chǎng)合應(yīng)用)
- 蘇教譯林版七年級(jí)上冊(cè)英語(yǔ)期末測(cè)試卷(附答案解析)
- 小學(xué)低段音樂(lè)課堂聆聽(tīng)有效性課題研究方案
- 施工商務(wù)員工作總結(jié)
- 《如何寫好科研論文》期末考試答案(分類好的)
- 網(wǎng)絡(luò)信息安全威脅情報(bào)與情報(bào)分析
評(píng)論
0/150
提交評(píng)論