<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 70,comments - 408,trackbacks - 0

    Log4j是Apache組織的一個(gè)開(kāi)源項(xiàng)目,它是一個(gè)日志操作包,通過(guò)使用Log4j可以指定日志信息輸出的目的地,如控制臺(tái),文件,GUI組件,NT的時(shí)間記錄器,還可以控制每一條日志輸出的格式,此外通過(guò)定義日志的級(jí)別,能夠非常細(xì)致的控制日志的輸出,最好的地方是這些功能可以通過(guò)一個(gè)配置文件來(lái)靈活的進(jìn)行配置,而不需要修改程序代碼.在應(yīng)用程序中輸出日志有三個(gè)目的:

    1)     監(jiān)視代碼變量的變化情況,把詳細(xì)信息記錄到文件中,進(jìn)行統(tǒng)計(jì)分析.

    2)     跟蹤代碼運(yùn)行軌跡,作為日后審計(jì)的依據(jù).

    3)     擔(dān)當(dāng)集成開(kāi)發(fā)環(huán)境中的調(diào)試器的作用,向文件和控制器打印代碼的調(diào)試信息.

    學(xué)習(xí)Log4j最重要的是首先要了解兩個(gè)常用的接口:Log和LogFactory.首先說(shuō)一說(shuō)Log接口.通用日志包把日志消息分為6個(gè)級(jí)別:

    1)     fatal致命的

    2)     error錯(cuò)誤

    3)     warn警告

    4)     info信息

    5)     debug調(diào)試

    6)     trace細(xì)節(jié)

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

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

    以上闡述了重要的Log接口,下面簡(jiǎn)單說(shuō)明一下LogFactory接口,這個(gè)接口也和Log接口一樣在logging包中,接口提供了獲得日志器實(shí)例的兩個(gè)靜態(tài)方法如下:

    public static Log getLog(String name)throws LogConfigurationException;

    public static Log getLog(Class class)throws LogConfigurationException;

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

    在強(qiáng)調(diào)可重用組件的今天,除了自己從頭到尾開(kāi)發(fā)一個(gè)可重用的日志操作類(lèi)以外,還有一個(gè)Apache為我們提供的一個(gè)強(qiáng)有力的現(xiàn)成的日志操作包Log4j.主要由三大組件構(gòu)成:

    1)     Logger:負(fù)責(zé)生成日志,并能夠?qū)θ罩拘畔⑦M(jìn)行分類(lèi)篩選.

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

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

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

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

    2)     創(chuàng)建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里調(diào)用我就不用詳細(xì)寫(xiě)了,很簡(jiǎn)單,就是引入logging的包,然后在execute()方法中通過(guò)Log log=LogFactory.getLog(“name”);獲取具體的Log對(duì)象,在通過(guò)log.fatal(“信息”);類(lèi)似的方法操作日志,還可以通過(guò)isDebugEnbled()等方法判斷日志的輸出.

        回顧一下Log4j主要三個(gè)組件構(gòu)成:Logger,Appender,Layout,Logger控制日志信息的輸出,Appender決定輸出的目的地,Layout決定日志輸出的格式.Log4j允許客戶(hù)在配置文件文件中靈活的配置這些組件,然后讀取配置文件中并配置Log4j環(huán)境,然后就可以在程序中任何要輸出日志的地方調(diào)用適當(dāng)?shù)姆椒?這樣對(duì)于日后程序的調(diào)試有著重大的作用.
    posted on 2005-11-10 13:49 我心依舊 閱讀(1672) 評(píng)論(3)  編輯  收藏

    FeedBack:
    # re: Log4j深入淺出
    2005-11-10 18:54 | Flyingis
    就是要看看這種簡(jiǎn)單的文檔介紹,辛苦了!  回復(fù)  更多評(píng)論
      
    # re: Log4j深入淺出
    2005-11-11 16:47 | laxxx
    此文介紹得不錯(cuò)啊,值得學(xué)習(xí).  回復(fù)  更多評(píng)論
      
    # re: Log4j深入淺出
    2005-12-12 12:22 | diaman
    怎樣設(shè)置log4j配置為每日一個(gè)日志文件?  回復(fù)  更多評(píng)論
      

    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲热线99精品视频| 亚洲国产亚洲综合在线尤物| a毛片在线看片免费| 亚洲第一永久在线观看| 岛国片在线免费观看| 免费在线一级毛片| 亚洲av片不卡无码久久| 四虎永久免费影院| 久久青草91免费观看| 亚洲综合精品第一页| 亚洲国产三级在线观看| 美女被cao免费看在线看网站| 九九九精品视频免费| 亚洲欧洲国产成人精品| 亚洲国产综合人成综合网站| ww在线观视频免费观看| 黄色网址免费在线| 亚洲毛片免费观看| 亚洲精品一级无码鲁丝片| 一级女人18毛片免费| 中文字幕免费在线看线人动作大片| 亚洲AV无码乱码麻豆精品国产| 国产成人99久久亚洲综合精品| 国产精品手机在线亚洲| 亚洲视频在线观看网站| 亚洲精品视频免费| 岛国大片免费在线观看| 无码av免费网站| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 亚洲熟妇无码AV在线播放| 成人免费男女视频网站慢动作| 在线成人精品国产区免费| 国产亚洲精品第一综合| 亚洲一区二区三区深夜天堂| 亚洲AV无码一区二区乱孑伦AS| 免费观看日本污污ww网站一区| 亚洲免费观看在线视频| 无码av免费一区二区三区| 在线观看人成视频免费无遮挡| 曰批全过程免费视频免费看| 中文字幕在线观看亚洲视频|