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

首頁 > 學院 > 開發設計 > 正文

Log4j深入淺出

2019-11-18 16:14:59
字體:
來源:轉載
供稿:網友

Log4j是Apache組織的一個開源項目,它是一個日志操作包,通過使用Log4j可以指定日志信息輸出的目的地,如控制臺,文件,GUI組件,NT的時間記錄器,還可以控制每一條日志輸出的格式,此外通過定義日志的級別,能夠非常細致的控制日志的輸出,最好的地方是這些功能可以通過一個配置文件來靈活的進行配置,而不需要修改程序代碼.在應用程序中輸出日志有三個目的:

1)     監視代碼變量的變化情況,把詳細信息記錄到文件中,進行統計分析.

2)     跟蹤代碼運行軌跡,作為日后審計的依據.

3)     擔當集成開發環境中的調試器的作用,向文件和控制器打印代碼的調試信息.

學習Log4j最重要的是首先要了解兩個常用的接口:Log和LogFactory.首先說一說Log接口.通用日志包把日志消息分為6個級別:

1)     fatal致命的

2)     error錯誤

3)     warn警告

4)     info信息

5)     debug調試

6)     trace細節

其中級別按照以上的順序,org.apache.commons.logging.Log接口代表日志器,它提供

一組輸出日志的方法.例如fatal(Object message)參數都是一個對象,要注意的是只有當它輸出日志的級別大于或者等于為日志配置的級別的時候,這個方法才會被執行.Log接口還提供了一組判斷是否允許輸出特定級別日志信息的方法,很簡單例如isFatalEnabled()在程序輸出某種級別的日志消息之前,提倡先調用以上的方法來判斷該級別的日志是否允許輸出,這有助于提高應用的性能.這種判斷主要是為了提高性能,避免執行多余的操作.

以上闡述了重要的Log接口,下面簡單說明一下LogFactory接口,這個接口也和Log接口一樣在logging包中,接口提供了獲得日志器實例的兩個靜態方法如下:

public static Log getLog(String name)throws LogConfigurationException;

public static Log getLog(Class class)throws LogConfigurationException;

第一個getLog()方法name參數作為日志器的名字,第二個getLog()方法以class參數指定的類的名字作為日志器的名字.


在強調可重用組件的今天,除了自己從頭到尾開發一個可重用的日志操作類以外,還有一個Apache為我們提供的一個強有力的現成的日志操作包Log4j.主要由三大組件構成:

1)     Logger:負責生成日志,并能夠對日志信息進行分類篩選.

2)     Appender:定義了日志信息輸出的目的地,指定日志信息應該被輸出到什么地方.

3)     Layout:指定日志信息的輸出格式.

以上的三個組件協同工作,使得開發者能夠依據日志信息類別記錄信息,并能夠在程序運行期間,控制日志信息的輸出格式以及日志的存放地點.Log4j的Appender組件決定日志輸出到什么地方,目前Log4j的Appender支持將日志信息輸出到控制臺Console,文件,GUI組件.一個Logger可以同時對應多個Appender也就是說一個Logger的日志信息可以同時輸出在多個目的地上.例如可以為rootLogger配置兩個Appender,一個是file一個是console可以這樣寫:log4j.rootLogger=warn.file.console然后可以用appender.console或者是appender.file來指定具體的控制臺或者文件.當以上的都設置好了以后還需要配置Layout組件,主要是解決日志的輸出格式,它的類型有:HtmlLayout(html格式),PattemLayout(可以靈活的指定布局模式),SimpleLayout(包含日志信息級別和信息的字符串)TTCCLayout(包含日志生產時間,線程和類別等信息).通過如上的研究已經可以配置Log4j了,然后就可以通過Log4j的API來操作日志了.如果要在Web應用中使用Log4j,需要創建一個配置文件配置Log4j的環境,然后就可以在其他的Web組件中獲取Logger對象并輸出日志.下面展示一個局部的Log4j,這里只是舉例Log4j的配置文件和在具體的Action中進行調用,如下:

1)     將Log4j的jar文件copy到WEB-INF的lib目錄下.

2)     創建Log4j的配置文件log4j.PRoperties存放在classes目錄下.

Log4j.rootLogger=INFO,console,file

Log4j.appender.console=org.apache.log4j.ConsoleAppender

Log4j.appender.file=org.apache.log4j.RollingFileAppender

Log4j.appender.file=e:/log/log.txt

Log4j.appender.console.layout=org.apache.log4j.PattemLayout

Log4j.appender.console.layout.ConversionPattrm=%t%p-%m%n

Log4j.appender.file.layout=rog.appache.log4j.HTMLLayout

Log4j.appender.file.layout.ConversionPattem=%t%p-%m%n

配置文件配置好了,在Action里調用我就不用詳細寫了,很簡單,就是引入logging的包,然后在execute()方法中通過Log log=LogFactory.getLog(“name”);獲取具體的Log對象,在通過log.fatal(“信息”);類似的方法操作日志,還可以通過isDebugEnbled()等方法判斷日志的輸出.

    回顧一下Log4j主要三個組件構成:Logger,Appender,Layout,Logger控制日志信息的輸出,Appender決定輸出的目的地,Layout決定日志輸出的格式.Log4j允許客戶在配置文件文件中靈活的配置這些組件,然后讀取配置文件中并配置Log4j環境,然后就可以在程序中任何要輸出日志的地方調用適當的方法,這樣對于日后程序的調試有著重大的作用.

(出處:http://m.survivalescaperooms.com)



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 三河市| 金门县| 乌兰浩特市| 璧山县| 长岛县| 礼泉县| 民丰县| 台北市| 钟山县| 泗水县| 丹巴县| 奎屯市| 平邑县| 平度市| 长宁县| 河西区| 营山县| 安化县| 望谟县| 万全县| 东乡族自治县| 宁强县| 且末县| 西平县| 松滋市| 横山县| 湟中县| 渭南市| 长春市| 峨边| 石首市| 栖霞市| 当雄县| 偃师市| 南宫市| 桃园县| 全椒县| 抚州市| 璧山县| 保靖县| 禄劝|