版權(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,即日志寫(xiě)入器、日志輸出終端和日志布局模式。Log4j的類(lèi)結(jié)構(gòu)如圖10.1所示。410.1.1日志記錄器(Logger)org.apache.log4j.Logger類(lèi)的實(shí)例是用來(lái)取代System.out或者System.err的日志寫(xiě)出器的,主要用來(lái)輸出日志信息。可以通過(guò)以下方式來(lái)獲取Logger類(lèi)的實(shí)例://根據(jù)指定名稱來(lái)獲取一個(gè)日志記錄器實(shí)例Loggerlogger=Logger.getLogger(Stringname);//根據(jù)指定的類(lèi)信息中的類(lèi)名獲取一個(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é)果寫(xiě)入到用戶指定的目的地。日志目的地是通過(guò)Log4j的配置文件來(lái)指定的。對(duì)于不同的日志目的地,Log4j提供不同的Appender類(lèi)型的實(shí)現(xiàn)類(lèi)。常用的Appender實(shí)現(xiàn)類(lèi)包括:用于控制臺(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)類(lèi)。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)配置文件編寫(xiě)配置好之后,就可以使用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)類(lèi)。(2) 如果找不到perties配置文件,則再查找是否已定義系統(tǒng)環(huán)境變量mons.logging.Log,找到則使用其定義的Log實(shí)現(xiàn)類(lèi)。(3) 否則,查看classpath中是否有Log4j的包,如果發(fā)現(xiàn),則自動(dòng)使用Log4j作為日志實(shí)現(xiàn)類(lèi)。(4) 否則,使用JDK自身的日志實(shí)現(xiàn)類(lèi)(JDK1.4以后才有日志實(shí)現(xiàn)類(lèi))。(5) 最后,如果還沒(méi)找到,就使用commons-logging自己提供的一個(gè)簡(jiǎn)單的日志實(shí)現(xiàn)類(lèi)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到本地硬盤(pán)。解壓此文件,打開(kāi)解壓后的文件夾,如圖10.12所示。1810.6.3commons-logging的使用完成以上配置之后,就可以在項(xiàng)目中使用commons-logging了。使用前,還需要了解它的API。在commons-logging的API中需要關(guān)注一個(gè)抽象類(lèi)和一個(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024高考政治一輪復(fù)習(xí)第三單元發(fā)展社會(huì)主義民主政治第六課我國(guó)的人民代表大會(huì)制度課時(shí)作業(yè)含解析必修2
- 2024年遼寧客運(yùn)資格證應(yīng)用能力試題答案
- 萬(wàn)能工應(yīng)急招聘合同
- 個(gè)性化房屋設(shè)計(jì)合同協(xié)議書(shū)
- 軟裝設(shè)計(jì)轉(zhuǎn)讓合同
- 建筑油漆設(shè)備租賃合同
- 合同履行報(bào)告模板
- 蔬菜店翻新施工合同
- 健康管理師兼職合同
- 遠(yuǎn)郊二手房交易合同范本
- 完整版抖音運(yùn)營(yíng)推廣方案課件
- 公司以PPP模式實(shí)施專(zhuān)項(xiàng)項(xiàng)目可行性專(zhuān)題研究報(bào)告可研模板
- 中國(guó)郵政社招筆試題庫(kù)
- 全屋定制柜子售后合同模板
- 2024-2030年中國(guó)養(yǎng)生行業(yè)市場(chǎng)深度調(diào)研及前景趨勢(shì)與投資研究報(bào)告
- 江西省內(nèi)裝修合同范本
- 醫(yī)療檢驗(yàn)科協(xié)作醫(yī)院協(xié)議書(shū)
- 《湖南省建設(shè)工程計(jì)價(jià)辦法》《湖南省建設(shè)工程消耗量標(biāo)準(zhǔn)》交底宣貫課件-2020湖南省房屋建筑與裝飾工程消耗量標(biāo)準(zhǔn)交底
- 養(yǎng)老機(jī)構(gòu)服務(wù)質(zhì)量評(píng)價(jià)指標(biāo)體系的構(gòu)建
- MOOC 中國(guó)電影經(jīng)典影片鑒賞-北京師范大學(xué) 中國(guó)大學(xué)慕課答案
- MOOC 信息安全數(shù)學(xué)基礎(chǔ)-電子科技大學(xué) 中國(guó)大學(xué)慕課答案
評(píng)論
0/150
提交評(píng)論