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

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

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

    隨筆-109  評論-187  文章-25  trackbacks-0

    1.1 準備工作
    一。 Tomcat 已正確配置與使用。
    二。軟件下載: log4j------http://www.apache.org/dist/jakarta/log4j/jakarta-log4j-1.2.8.zip

    1.2. Log4j
    簡介

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

    1.3
    Log4j 的配置。

    首先到 jakarta 下載一個 log4j 的組件。把 jakarta-log4j-1.2.8\dist\lib 下的 log4j-1.2.8.jar 文件 copy classpath 指定的目錄下!可以是 Tomcat common\lib 目錄下,也可以是你需要用到 log4j application 下的 lib 目錄。
    1.4
    Application 目錄下的 web.xml 文件加入以后代碼

    log4j
    com.apache.jakarta.log4j.Log4jInit

    log4j
    /WEB-INF/log4j.properties

    1


    這段代碼的意思是說,在 Tomcat 啟動時加載 com.apache.jakarta.log4j.Log4jInit 這個名叫 Log4jInit.class 這個類文件。其中 Log4jInit.class 的源代碼如下

    package com.apache.jakarta.log4j;
    import org.apache.log4j.PropertyConfigurator;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    public class Log4jInit extends HttpServlet {

    public void init() {
    String prefix = getServletContext().getRealPath("/");
    String file = getInitParameter("log4j");
    // if the log4j-init-file is not set, then no point in trying
    System.out.println("................log4j start");
    if(file != null) {
    PropertyConfigurator.configure(prefix+file);
    }
    }
    public void doGet(HttpServletRequest req, HttpServletResponse res) {
    }
    }
    這段代碼很簡單,可以看出,在加載的過程中,程序會讀取 /WEB-INF/log4j.properties 這個文件
    這個文件就是本文的重點,也就是 log4j 的配置文件。

    # Set root logger level to DEBUG and its only appender to A1
    #log4j
    中有五級 logger
    #FATAL 0
    #ERROR 3
    #WARN 4
    #INFO 6
    #DEBUG 7
    #
    配置根 Logger ,其語法為:
    #log4j.rootLogger = [ level ] , appenderName, appenderName, …
    log4j.rootLogger=INFO, A1 ,R
    #
    這一句設置以為著所有的 log 都輸出
    #
    如果為 log4j.rootLogger=WARN, 則意味著只有 WARN,ERROR,FATAL
    #
    被輸出, DEBUG,INFO 將被屏蔽掉 .
    # A1 is set to be a ConsoleAppender.
    #log4j
    Appender 有幾層如控制臺、文件、 GUI 組件、甚至是套接口服務器、 NT 的事件記錄器、 UNIX Syslog 守護進程等
    #ConsoleAppender
    輸出到控制臺
    log4j.appender.A1=org.apache.log4j.ConsoleAppender
    # A1
    使用的輸出布局,其中 log4j 提供 4 種布局 . org.apache.log4j.HTMLLayout (以 HTML 表格形式布局)
    #org.apache.log4j.PatternLayout
    (可以靈活地指定布局模式),
    #org.apache.log4j.SimpleLayout
    (包含日志信息的級別和信息字符串),
    #org.apache.log4j.TTCCLayout
    (包含日志產生的時間、線程、類別等等信息)

    log4j.appender.A1.layout=org.apache.log4j.PatternLayout
    #
    靈活定義輸出格式 具體查看 log4j javadoc org.apache.log4j.PatternLayout
    #d
    時間 ....
    log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
    #R
    輸出到文件 RollingFileAppender 的擴展,可以提供一種日志的備份功能。
    log4j.appender.R=org.apache.log4j.RollingFileAppender
    #
    日志文件的名稱
    log4j.appender.R.File=log4j.log
    #
    日志文件的大小
    log4j.appender.R.MaxFileSize=100KB
    #
    保存一個備份文件
    log4j.appender.R.MaxBackupIndex=1

    log4j.appender.R.layout=org.apache.log4j.TTCCLayout
    #log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n

    配置以這里就差不多了,如果你想更深入了解配置文件的各個細節,可以去查看 docs 。還有,在文章的最后面我們提供配置文件中一些主要的語法。下面我們來看看怎樣在程序中使用 log4j.

    1.4
      Log4j 的使用。
    使用 Log4j ,第一步就是獲取日志記錄器,這個記錄器將負責控制日志信息。其語法為:
    public static Logger getLogger( String name)

    必須在使用前要把這個類導入
    import org.apache.log4j.Logger;

    name
    一般是類文件的名字,如下:
    static Logger logger = Logger.getLogger ("".class.getName () ) ;

    您就可以輕松地使用不同優先級別的日志記錄語句插入到您想記錄日志的任何地方,其語法如下:
    logger.debug ( Object message ) ;
    logger.info ( Object message ) ;
    logger.warn ( Object message ) ;
    logger.error ( Object message ) ;

    為什么這里要分級別的呢?試想一下,我們在寫程序的時候,為了調試程序,會在很多會出錯的地方加入大量的 logger.info(); 信息。當然程序調試完畢,我們不需要這些輸出信息了,那怎么辦呢?以前的做法是把每個程序中的 logger.info 刪除,但這是不現實的,如果程序不大還可以,但如果程序很多,做這些事情就很煩人了。但因為 log4j 分級別了,當我們不需要輸出這樣調試時用到的 log.info() 時,我們可以把輸出的級別調高,如調到 warn, error 級別,這樣 info 級別及以下的級別就不會出輸出了,是不是很方便的呢?

    其實除了這種使用方式, log4j 還有其它的使用方面,不需要配置文件,直接在程序中定義輸入出級別,層次等信息,如果要了解這方法的使用,可以參考文檔。

    1.5
    。附注:
    以下是配置文件的一些重要的語法
    定義配置文件

    其實您也可以完全不使用配置文件,而是在代碼中配置 Log4j 環境。但是,使用配置文件將使您的應用程序更加靈活。

    Log4j
    支持兩種配置文件格式,一種是 XML 格式的文件,一種是 Java 特性文件(鍵 = 值)。下面我們介紹使用 Java 特性文件做為配置文件的方法:

    配置根 Logger ,其語法為:

    log4j.rootLogger = [ level ] , appenderName, appenderName, …
    其中, level 是日志記錄的優先級,分為 OFF FATAL ERROR WARN INFO DEBUG ALL 或者您定義的級別。 Log4j 建議只使用四個級別,優先級從高到低分別是 ERROR WARN INFO DEBUG 。通過在這里定義的級別,您可以控制到應用程序中相應級別的日志信息的開關。比如在這里定義了 INFO 級別,則應用程序中所有 DEBUG 級別的日志信息將不被打印出來。
    appenderName
    就是指定日志信息輸出到哪個地方。您可以同時指定多個輸出目的地。

    配置日志信息輸出目的地 Appender ,其語法為

    log4j.appender.appenderName = fully.qualified.name.of.appender.class
    log4j.appender.appenderName.option1 = value1

    log4j.appender.appenderName.option = valueN
    其中, Log4j 提供的 appender 有以下幾種:
    org.apache.log4j.ConsoleAppender
    (控制臺),
    org.apache.log4j.FileAppender
    (文件),
    org.apache.log4j.DailyRollingFileAppender
    (每天產生一個日志文件), org.apache.log4j.RollingFileAppender (文件大小到達指定尺寸的時候產生一個新的文件),
    org.apache.log4j.WriterAppender
    (將日志信息以流格式發送到任意指定的地方)

    配置日志信息的格式(布局),其語法為:

    log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
    log4j.appender.appenderName.layout.option1 = value1

    log4j.appender.appenderName.layout.option = valueN
    其中, Log4j 提供的 layout 有以下幾種:
    org.apache.log4j.HTMLLayout
    (以 HTML 表格形式布局),
    org.apache.log4j.PatternLayout
    (可以靈活地指定布局模式),
    org.apache.log4j.SimpleLayout
    (包含日志信息的級別和信息字符串),
    org.apache.log4j.TTCCLayout
    (包含日志產生的時間、線程、類別等等信息)

    posted on 2006-05-09 16:06 小小程序程序員混口飯吃 閱讀(2147) 評論(0)  編輯  收藏 所屬分類: java
    主站蜘蛛池模板: 亚洲最大在线视频| 丁香花免费完整高清观看| 国产亚洲成av片在线观看| 男女免费观看在线爽爽爽视频 | 亚洲乱码国产一区三区| 午夜a级成人免费毛片| 国产免费无码一区二区| 窝窝影视午夜看片免费| 亚洲av无码专区首页| 亚洲人成电影院在线观看| 久久精品国产96精品亚洲| 亚洲AV无码日韩AV无码导航| 77777亚洲午夜久久多人| 永久免费看mv网站入口| 好男人看视频免费2019中文| 成人在线免费观看| 在线免费观看一级片| 免费黄色小视频网站| 免费人成在线观看视频播放| 免费va人成视频网站全| 免费大黄网站在线看| 亚洲人成人网站色www| 亚洲一区二区影院| 亚洲成a人片在线观| 在线观看亚洲专区| 久久久久久影院久久久久免费精品国产小说 | yellow免费网站| 无人在线观看免费高清| 57pao一国产成视频永久免费| 97性无码区免费| 亚洲一级特黄大片无码毛片| 亚洲AV无码一区二区乱子伦| 亚洲第一成年网站大全亚洲| 亚洲精品无码mⅴ在线观看| 九一在线完整视频免费观看| 91精品手机国产免费| 国产成人涩涩涩视频在线观看免费| 亚洲av鲁丝一区二区三区| 亚洲AⅤ男人的天堂在线观看| 大妹子影视剧在线观看全集免费| 91免费播放人人爽人人快乐|