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

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

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

    【永恒的瞬間】
    ?Give me hapy ?
    在應用程序中輸出日志有有三個目的:

    (1)監視代碼中變量的變化情況,把數據周期性地記錄到文件中供其他應用進行統計分析工作。

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

    (3)擔當集成開發環境中的調試器,向文件或控制臺打印代碼的調試信息。

      Apache能用日志包(Commons Logging Package)是Apache的一個開放源代碼項目,它提供了一組通用的日志接口,用戶可以自由地選擇實現日志接口的第三方軟件。通用日志包目前支持以下日志實現:

    • Log4J日志器(http://jakarta.apache.org/log4j
    • JDK1.4 Logging日志器(JDK1.4自帶)
    • SimpleLog日志器(把日志消息輸出到標準系統錯誤流System.err)
    • NoOpLog(不輸出任何日志信息)

    通用日志包中的兩個常用接口:LogFactory和Log,分別介紹如下:

    • Log接口

    通用日志包把消息分為6個級別:FATAL、ERROR、WARN、INFO、DEBUG和TRACE。其中FATAL級別最高,TRACE級別最低。Log接口提供輸出不同級別消息的方法:

    fatal(Object message)-------輸出FATAL級別的消息。

    error(Object message)-------輸出ERROR級別的消息。

    warn(Object message)-------輸出WARN級別的消息。

    info(Object message)-------輸出INFO級別的消息。

    debug(Object message)-------輸出DEBUG級別的消息。

    trace(Object message)-------輸出TRACE級別的消息。

    注:只有當輸出日志的級別大于或等于為日志配置器配置的日志級別時,這個方法才會執行。

      如何指定日志器的日志級別,不同的日志器實現會有不同的實現方案。

    • LogFactory接口

    LogFactory接口提供了獲得日志器實例的兩個靜態方法:

    public static Log getLog(String name) throws LogConfigurationException;

    public static Log getLog(Class class) throws LogConfigurationException;

    注:name參數作為日志器的名字;class參數指定類名作為日志器名字。

    以下介紹最常用的一個日志實現--------Log4J

      Log4j是Apache的一個開放源代碼項目,它是一個日志操作包。通過使用Log4j,我們可以控制日志信息輸送的目的地是控制臺、文件、GUI組件、甚至是套接口服務器、NT的事件記錄器、UNIX Syslog守護進程等;我們也可以控制每一條日志的輸出格式;通過定義每一條日志信息的級別,我們能夠更加細致地控制日志的生成過程。最令人感興趣的就是,這些可以通過一個配置文件來靈活地進行配置,而不需要修改應用的代碼。
    此外,通過Log4j其他語言接口,您可以在C、C++、.Net、PL/SQL程序中使用Log4j,其語法和用法與在Java程序中一樣,使得多語言分布式系統得到一個統一一致的日志組件模塊。而且,通過使用各種第三方擴展,您可以很方便地將Log4j集成到J2EE、JINI甚至是SNMP應用中。

      Log4J主要由三大組件構成:

    • Logger:負責生成日志,并能根據配置的日志級別來決定什么日志消息應該被輸出,什么日志消息應該被忽略。
    • Appender:定義日志消息輸出的目的地,指定日志消息應該被輸出到什么地方,這些地方可以是控制臺、文件和網絡設備等。
    • Layout:指定日志消息的輸出格式。

      這三個組件協同工作,使得開發者能夠依據日志消息類別來輸出日志,并能夠在程序運行期間,控制日志消息的輸出格式以及日志存放地點。

      Log4J的配置

      配置Log4J,需要分別配置它的Logger、Appender和Layout屬性。配置文件一般為log4j.properties。當然也可以以XML文件來配置,這里介紹以屬性文件配置。

    • 配置Logger組件

    Logger組件支持繼承關系,所有的Logger組件都直接或間接繼承rootLogger。配置rootLogger的語法為:

      log4j.rootLogger=[priority],appenderName,appenderName,......

    priority是如前所述的日志級別;

    appenderName指定Appender組件,用戶可以同時指定多個Appender組件,以與逗號分隔。

    • 配置Appender組件

    配置日志消息輸出目的地Appender,語法為:

      log4j.appender.appenderName=<appender的完整類名>

      log4j.appender.appenderName.option1=value1

      log4j.appender.appenderName.option2=value2

      ...

    Log4J共有以下幾種Appender:

      org.apache.log4j.ConsoleAppender(控制臺)

      org.apache.log4j.FileAppender(文件)

      org.apache.log4j.DailyRollingFileAppender(每天產生一個日志文件)

      org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件)

      org.apache.log4j.WriterAppender(將日志消息以流格式發送到任意指定的地方)

    • 配置Layout組件

    語法:

       log4j.appender.appenderName.layout=<layout的完整類名>

       log4j.appender.appenderName.layout.option1=value1

       log4j.appender.appenderName.layout.option2=value2

       ...

    Log4J提供以下幾種Layout:

      org.apache.log4j.HTMLLayout(以HTML表格形式布局)

      org.apache.log4j.PatternLayout(可以靈活地指定布局模式)

      org.apache.log4j.SimpleLayout(包含日志消息的級別和信息字符串)

      org.apache.log4j.TTCCLayout(包含日志產生的時間、線程和類別等信息)

    通過設置PatternLayout的ConversionPattern屬性來指定輸出格式

    ConversionPattern的格式如下表所示:

    格式名      含義
    %c       輸出日志信息所屬的類的全名
    %d      輸出日志時間點的日期或時間,默認格式為ISO8601,也可以在其后指定格式,比如:

    ??????????????????????????? %d{yyy-MM-dd HH:mm:ss },輸出類似:2002-10-18- 22:10:28
    %f       輸出日志信息所屬的類的類名
    %l       輸出日志事件的發生位置,即輸出日志信息的語句處于它所在的類的第幾行
    %m     ?? 輸出代碼中指定的信息,如log(message)中的message
    %n      輸出一個回車換行符,Windows平臺為“\r\n”,Unix平臺為“\n”
    %p      輸出優先級,即DEBUG,INFO,WARN,ERROR,FATAL。如果是調用debug()輸出的,則為DEBUG,依此類推
    %r      輸出自應用啟動到輸出該日志信息所耗費的毫秒數
    %t      輸出產生該日志事件的線程名


    示例:log4j.appender.file.layout=org.apache.log4j.PatternLayout

       log4j.appender.file.layout.ConversionPattern=%t %p- %m%n

    Log4J對應用性能的影響

      如果在程序運行中輸出大量日志,顯然會對應用的性能造成一定的影響。Log4J對性能的影響取決于以下因素:

    • 日志輸出目的地:輸出到控制臺的速度和輸出到文件系統的速度是不一樣的。
    • 日志輸出格式:格式簡單,速度也更快。
    • 日志級別:日志級別設置的越低,輸出的日志內容越多,對性能的影響也越大。
    posted on 2007-01-03 16:46 ???MengChuChen 閱讀(961) 評論(0)  編輯  收藏 所屬分類: Log4j
    主站蜘蛛池模板: 国产午夜亚洲精品不卡免下载| 亚洲福利秒拍一区二区| 亚洲人成人伊人成综合网无码| www视频免费看| 午夜免费国产体验区免费的| 免费无码又爽又刺激毛片| 97久久国产亚洲精品超碰热| 在线观看日本免费a∨视频| 亚洲一区二区影视| 国产情侣激情在线视频免费看| 91亚洲国产成人久久精品 | 国产亚洲精品仙踪林在线播放| 又粗又大又猛又爽免费视频| 精品国产香蕉伊思人在线在线亚洲一区二区 | 黄色网址免费大全| 日本亚洲免费无线码| 免费看少妇作爱视频| 337P日本欧洲亚洲大胆艺术图| 免费99热在线观看| 一区二区视频免费观看| 亚洲欧洲自拍拍偷午夜色无码| 久久大香伊焦在人线免费| 亚洲欧洲另类春色校园小说| 精品国产无限资源免费观看| 久久精品国产亚洲AV未满十八| 国产国拍亚洲精品福利| 国产高清不卡免费视频| 亚洲一卡二卡三卡四卡无卡麻豆| 久久WWW色情成人免费观看| 免费国产黄网站在线观看动图| 亚洲日韩国产精品第一页一区| 最近中文字幕免费mv在线视频| 亚洲精品无码专区| 国产成人麻豆亚洲综合无码精品| 久久99国产综合精品免费| 亚洲av无码成人精品区一本二本 | 亚洲女同成av人片在线观看 | 亚洲国产精品国自产拍AV| 一区二区无码免费视频网站| 一级特黄aaa大片免费看| 亚洲最新视频在线观看|