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

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

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

    隨筆-72  評(píng)論-20  文章-0  trackbacks-1
    1.Logger類(lèi)
    通過(guò)Logger類(lèi)的靜態(tài)方法Logger.getRootLogger得到RootLogger。所有其他的loggers是通過(guò)靜態(tài)方法Logger.getLogger來(lái)實(shí)例化并獲取的。這個(gè)方法Logger.getLogger把所想要的logger的名字作為參數(shù)。 Logger類(lèi)的一些其它基本方法在下面列出:
    package org.apache.log4j;
    public class Logger {
     
      // Creation and retrieval methods:
      public static Logger getRootLogger();
      public static Logger getLogger(String name);
     
      // printing methods:
      public void debug(Object message);
      public void info(Object message);
      public void warn(Object message);
      public void error(Object message);
      public void fatal(Object message);
     
      // generic printing method:
      public void log(Level l, Object message);
    }
     
     
    2. getLogger方法
    以一樣的參數(shù)名字調(diào)用getLogger方法,返回的reference總是指向完全相同的logger對(duì)象。例如,在這里:
    Logger x = Logger.getLogger("wombat");
    Logger y = Logger.getLogger("wombat");
    x和y指向完全相同的logger對(duì)象。
     
    3.Log4j使用流程
    1)根據(jù)配置文件初始化log4j
           log4j可以使用3種配置器來(lái)初始化:
    BasicConfigurator,DOMConfigurator,PropertyConfigurator。
    這里用的是PropertyConfigurator。使用PropertyConfigurator適用于所有的系統(tǒng)。如下的語(yǔ)句。
    PropertyConfigurator.configure("log4j.properties");
    就以log4j.properties為配置文件初始化好了log4j環(huán)境。對(duì)于一般的java project 可以不使用上面的語(yǔ)句初始化log4j,log4j會(huì)自動(dòng)在classpath下,找到配置文件并初始化。如果log4j不能自動(dòng)初始化配置文件,那么就需要用上面的方法進(jìn)行初始化。
           注意:初始化配置文件,最好只在系統(tǒng)啟動(dòng)的時(shí)候執(zhí)行一次,如果執(zhí)行多次,一是浪費(fèi)資源,二就是對(duì)于老版本的log4j,使用DailyRollingFileAppender時(shí),可能會(huì)出現(xiàn)問(wèn)題。
     
    2)導(dǎo)入org.apache.log4j.Logger;及相關(guān)包。
     
    3)在需要使用log4j的地方獲取Log實(shí)例。
    static Logger log = Logger.getLogger("MyCLASS.class");
     
    4)使用Logger對(duì)象的debug,info,fatal...方法。
    log.debug("it is the debug info");
     
    4.Log4j使用示例
    Test.java
    import org.apache.log4j.Logger;
     
    public class Test {
        static Logger log= Logger.getLogger(Test.class);
        public void log(){
           log.debug("Debug info.");
           log.info("Info info");
           log.warn("Warn info");
           log.error("Error info");
           log.fatal("Fatal info");
        }
        public static void main(String[] args) {
           Test test = new Test();
           test.log();
        }
    }
     
     
    Log4j.properties(具體配置屬性定義見(jiàn)《Log4j配置說(shuō)明》)
    log4j.rootLogger=info, stdout
    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
     
    結(jié)果
    INFO [main] (Test.java:16) - Info info
     WARN [main] (Test.java:17) - Warn info
    ERROR [main] (Test.java:18) - Error info
    FATAL [main] (Test.java:19) - Fatal info
     
    分析:
    Test.java
    “Logger.getLogger(Test.class);”這里的“Test.class”事實(shí)上傳進(jìn)去的是Test這個(gè)類(lèi)的完整路徑(包名+類(lèi)名),“test.Test”。這樣如果存在“test”這個(gè)Log那么Test這個(gè)Log就繼承它,否則就繼承rootLogger。
     
    Log4j.properties
    第一行,配置log4j.rootLogger。應(yīng)為它是根,必須配置,否則別的Log無(wú)法繼承。其他的Log可以配置也可以不配置。等號(hào)后面的第一個(gè)參數(shù)表示日志級(jí)別,可以填五個(gè)級(jí)別中的一種(Log4j默認(rèn)把日志信息分為五個(gè)等級(jí)debug < info < warn < error < fatal),后面的參數(shù)都是讓Log知道輸出到哪里,如果你想讓日志輸出到兩個(gè)地方就加兩個(gè)輸出參數(shù),比如:
    log4j.rootLogger=info, stdout
    這里的info表示,該Log的日志級(jí)別為info,所有級(jí)別小于info的日志都不會(huì)被記錄。比如使用這個(gè)配置文件的話(huà),我剛開(kāi)始舉的那個(gè)類(lèi)中
    log.debug("Debug info.");
    這句話(huà)是不起作用的,因?yàn)閐ebug的級(jí)別小于info。這樣就很容易控制什么信息在調(diào)試的時(shí)候要顯示,什么信息在發(fā)布的時(shí)候要去掉。這些都不用改代碼。
          配置stdout,這個(gè)名字是隨便取的,你可以叫它A:
    log4j.appender.A=org.apache.log4j.ConsoleAppender
    那么上面的rootLogger的參數(shù)stdout也要改成A,其他用到的地方當(dāng)然也要改。這里的關(guān)鍵不是名字,而是appender類(lèi)型,比如這里的“ConsoleAppender”,指輸出到Console。后面兩行都是設(shè)置日志格式的。
     
    5.參考資料
    [1] Log4j官方手冊(cè)
    [2] Log4j最簡(jiǎn)入門(mén)

    posted on 2007-08-19 05:15 前方的路 閱讀(2238) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Java技術(shù)
    主站蜘蛛池模板: 青青免费在线视频| 青柠影视在线观看免费高清| 四虎精品亚洲一区二区三区| 久久高潮一级毛片免费| 亚洲精品美女在线观看播放| 成年女人永久免费观看片| 三年在线观看免费观看完整版中文| 亚洲视频在线免费看| 又大又硬又爽免费视频| 亚洲一区免费观看| 怡红院亚洲红怡院在线观看| 久久久综合亚洲色一区二区三区| 国产精品视频永久免费播放| h片在线播放免费高清| 亚洲一区动漫卡通在线播放| 国产美女亚洲精品久久久综合| 亚洲免费人成视频观看| www成人免费观看网站| 亚洲一卡二卡三卡四卡无卡麻豆| 亚洲中文无韩国r级电影| 免费AA片少妇人AA片直播| 精品一区二区三区高清免费观看| 亚洲人成综合网站7777香蕉| 国产亚洲综合成人91精品| 国内自产少妇自拍区免费| 日韩免费的视频在线观看香蕉| 精品亚洲av无码一区二区柚蜜| 中文字幕亚洲精品资源网| 亚洲人成无码网站久久99热国产| 无码乱肉视频免费大全合集| 99re6在线视频精品免费| 色九月亚洲综合网| 亚洲AV无码一区二区三区人| 亚洲四虎永久在线播放| 亚洲日韩中文在线精品第一| 免费无码又爽又刺激毛片| 182tv免费视视频线路一二三| 久久久久久久国产免费看| 国产成人综合亚洲| 亚洲欧美aⅴ在线资源| 亚洲国产成人va在线观看网址|