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

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

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

    polarwind

    2005年10月19日

    關于log4j(一)----使用

             最近正在做一個項目,其中要使用log4j,把我對它的一些了解和看法在這里寫出來,供大家參考。
             今天只討論log4j的使用。

    一:配置


    A:)在Web Application 中使用log4j
    Step 1:
    配置log4j配置文件
    =========================
    # Set root logger level to DEBUG and its only appender to A1
    #log4j中有五級logger
    #FATAL0
    #ERROR3
    #WARN4
    #INFO6
    #DEBUG7
    log4j.rootLogger=DEBUG, A1
    # A1 is set to be a ConsoleAppender.
    #log4j中Appender有幾層
    #ConsoleAppender輸出到控制臺
    log4j.appender.A1=org.apache.log4j.ConsoleAppender

    # A1 uses PatternLayout.
    log4j.appender.A1.layout=org.apache.log4j.PatternLayout
    #輸出格式 具體查看log4j javadoc org.apache.log4j.PatternLayout
    #d 時間 ....
    log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

    ================================另外一種配置
    log4j.rootLogger=debug, stdout, R

    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

    # Pattern to output the caller's file name and line number.
    log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
    #R 輸出到文件
    log4j.appender.R=org.apache.log4j.RollingFileAppender
    log4j.appender.R.File=example.log

    log4j.appender.R.MaxFileSize=100KB
    # Keep one backup file
    log4j.appender.R.MaxBackupIndex=1

    log4j.appender.R.layout=org.apache.log4j.PatternLayout
    log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n

    Step 2:寫啟動的Servlet

    public class InitServlet extends HttpServlet {

    public void init() {
    ServletContext sct = getServletContext();
    String prefix = sct.getRealPath("/");
    //log4j 配置文件存放目錄
    System.out.println("[....Log4j]: The Root Path: " + prefix);
    System.out.println("[....Log4j]: InitServlet init start...");
    String file = getInitParameter("log4j");
    //log4j 配置文件
    if (file != null) {
    PropertyConfigurator.configure(prefix + file);
    //根據配置初始化log4j
    }

    System.out.println("[....Log4j]: InitServlet Init Sucess...");

    }

    public void doGet(HttpServletRequest req, HttpServletResponse res) {

    }

    public void doPost(HttpServletRequest req, HttpServletResponse res) {

    }
    }

    B:在一般的IDE中使用log4j,因為使用log4j需要做一些初始化,在Web Application
    中這一部分初始化是有AppServer 啟動是加載的。在IDE中,則我們在使用log4j
    之前需要自己配置一下。
    如下文件:
    public final class Lo4jTest {
    private static String CLASS_NAME = "com.bingo.test.Lo4jTest";
    private static Logger log = Logger.getLogger(CLASS_NAME);
    //在Web Application 中下面的pattern是在log4j的配置文件中配置的。
    //現在我們手動配置
    private static String pattern="%-4r [%-t] [%p] [%c] [%x] - [%m]%n";
    private static String pattern2="%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n";
    //設置輸出層
    //
    private static ConsoleAppender consAppender =
    new ConsoleAppender(
    new PatternLayout(pattern2));
    public static void main(String[] args) {
    //配置log4j
    BasicConfigurator.configure(consAppender);
    // void configure(Appender appender);
    // void configure();
    //配置時log4j提供了兩種方式
    //后一種比較簡單,輸出的信息不夠詳細
    //我們可以使用前一種輸出我們希望的格式
    log.debug("Log4j Debug.");
    log.error("Log4j Error.");
    log.info("Log4j Info.");
    log.fatal("Log4j Fatal.");
    }
    }
    //使用pattern2上面的輸出結果如下
    2002-08-30 13:49:09 [com.bingo.test.Lo4jTest]-[DEBUG] Log4j Debug.
    2002-08-30 13:49:09 [com.bingo.test.Lo4jTest]-[ERROR] Log4j Error.
    2002-08-30 13:49:09 [com.bingo.test.Lo4jTest]-[INFO] Log4j Info.
    2002-08-30 13:49:09 [com.bingo.test.Lo4jTest]-[FATAL] Log4j Fatal.
    //假如我們使用pattern輸出如下:
    0 [main] [DEBUG] [com.bingo.test.Lo4jTest] [] - [Log4j Debug.]
    0 [main] [ERROR] [com.bingo.test.Lo4jTest] [] - [Log4j Error.]
    0 [main] [INFO] [com.bingo.test.Lo4jTest] [] - [Log4j Info.]
    0 [main] [FATAL] [com.bingo.test.Lo4jTest] [] - [Log4j Fatal.]


    二:使用log4j
    在實際使用過程中其實非常簡單

    1:)如下定義log

    private static String CLASS_NAME = "com.bingo.test.Lo4jTest";
    //log4j1.2
    private static Logger log = Logger.getLogger(CLASS_NAME);

    2:)寫日志

    log.debug("Log4j Debug.");
    log.error("Log4j Error.");
    log.info("Log4j Info.");
    log.fatal("Log4j Fatal.");
    //void debug(Object message)
      //Log a message object with the DEBUG level.
      //void debug(Object message, Throwable t)
      //Log a message object with the DEBUG level including the
      //stack trace of the Throwable t passed as parameter.

    三:注意事項


    1:在具體使用中注意不同的信息使用不同的log方式,選擇debug,error,
    info,fatal中的一種,以后可以根據需要屏蔽部分輸出
    2:開發過程中盡量輸出到控制臺,運行過程中則修改配置使其輸出到文件.
    3:定義log盡量使用文件名作為參數,這樣容易查找錯誤.

    posted @ 2005-10-22 13:03 太陽風 閱讀(286) | 評論 (0)編輯 收藏

    開卷明宗

    很多同學都在做技術,這里就是方便大家的一個地方。平時談談大家的對技術的看法和感受;談談可能遇到問題的技術細節;談談項目反思,等等。希望能能互惠大家。

    posted @ 2005-10-19 19:40 太陽風 閱讀(361) | 評論 (1)編輯 收藏

    <2005年10月>
    2526272829301
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345

    導航

    統計

    常用鏈接

    留言簿(1)

    我參與的團隊

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 在线观看免费亚洲| 性做久久久久久久免费看| 久久国产成人亚洲精品影院| 亚洲国产成人综合精品| 在线免费观看一级片| 亚洲色偷偷偷综合网| 在线永久免费观看黄网站| 色偷偷亚洲第一综合| 免费国产精品视频| xxxxxx日本处大片免费看| 亚洲狠狠爱综合影院婷婷| CAOPORM国产精品视频免费| 中文字幕亚洲综合久久菠萝蜜| 久久久久久久久久久免费精品| 亚洲精品无码永久中文字幕| 久爱免费观看在线网站| 亚洲精品视频久久| 成人毛片免费观看视频大全| 黄人成a动漫片免费网站| 亚洲伊人久久大香线蕉综合图片| 久久国产精品一区免费下载| 亚洲一区二区三区四区视频 | 亚洲美女视频网站| 免费看国产精品3a黄的视频| 久久久亚洲精华液精华液精华液| 亚洲国产一区二区三区| 污污网站免费观看| 亚洲一卡2卡三卡4卡无卡下载| 丁香亚洲综合五月天婷婷| 国产成人免费AV在线播放| 亚洲一区二区三区四区视频| 亚洲国模精品一区| 免费能直接在线观看黄的视频| 亚洲精品精华液一区二区| 国产亚洲综合一区柠檬导航| 99视频在线精品免费观看6| 一级做a爱过程免费视频高清| 久久久久亚洲AV无码永不| 亚洲国产91精品无码专区| 亚洲高清视频免费| a级毛片免费高清视频|