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

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

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

    云自無心水自閑

    天平山上白云泉,云自無心水自閑。何必奔沖山下去,更添波浪向人間!
    posts - 288, comments - 524, trackbacks - 0, articles - 6
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    Log4j 簡要剖析

    Posted on 2007-06-23 09:11 云自無心水自閑 閱讀(800) 評論(0)  編輯  收藏 所屬分類: Java

    Log4j

    Log4j的核心是3大組件:Logger、Appender、Layout。

    首先是Logger,Logger的意義在于它不象System.out,它可以根據需要屏蔽部分的Log輸出,同時其他的Log輸出不受影響。
    一、Logger有層次結構。有了層次結構就意味著有了繼承關系,也就意味著可以重用。這似乎和面向對象語言很想象。
    Logger都是有名稱的,而Logger的名稱和Java一樣,也是XXX.XXX.XXX,和Java一樣的規則,相當簡單。類似于Java中的Object,Logger的存在一個默認的根節點:root

    Logger的名稱一般這樣獲得:
    Logger logger = Logger.getLogger("XXX.XXX.XXX");
    或者
    Logger logger = Logger.getLogger(this.getClass());
    Log4j并沒有強制要求用類名作為Logger的名稱,但是這是推薦的做法。

    二、有了層次結構后,就要說一下級別了,文章開始的時候就提到,Log4j的優勢就在于能夠根據需要過濾Log的輸出,主要(不是全部)就是通過級別實現的。
    Log4j把級別分為:Fatal,Error,Warn,Info,Debug。這樣的區分也是經過慎重考慮的,如果引入太多的層次,會使得程序開發者在記錄日志的時候,難以選擇,會挑花了眼。
    級別之間存在優先級的高低。
    通過如下語句,輸出不同級別的Log
    logger.debug("...");
    logger.info("...");
    logger.warn("...");
    logger.error("...");
    logger.fatal("...");

    如果Logger的級別設為Warn,那么只有級別比Warn高的語句的Log才會輸出。 比如:logger.debug語句這時不起作用。

    三、層次結構的繼承關系現在便發揮作用了。子節點如果沒有顯式定義級別,那么自動繼承最近的父節點的級別。這樣,就不需要為每一個Logger都去定義級別了,因為至少根節點是存在的,可以從根節點中獲得級別定義。

    四、全局級別,可以通過設置日志的“門檻”,來實現全局強制性的級別控制。
    LoggerResposity reposity = x.getLoggerResposity();
    resposity.setThreshold(Level.WARN); 這完全可以在配置文件中配置。
    這樣,logger.info語句將不再起作用。

     

    其次是Appender,Appender決定了Log究竟輸出到什么地方,Log4j提供了多重輸出的功能,也就是說可以為Log定義多個輸出地點。
    同樣,層次結構在這里也發揮的威力,子節點的Logger將會繼承父節點的Appender,免去了一個一個定義Appender的工作,根節點默認的Appender的Console。
    當然,也可以設置不繼承父節點的Appender


    最后是Layout,Layout決定了Log的格式。

    Log4j的配置完全可以通過編程實現,對于特別簡單的應用來說,絕對是夠用了。但是,對于稍微大一點的應用,把配置硬編碼在程序中是不靈活的。所以,使用配置配置文件是比較好的選擇。



    主站蜘蛛池模板: 日本人的色道www免费一区| 两个人看的www免费视频| aa级一级天堂片免费观看| 亚洲视频在线不卡| 最近新韩国日本免费观看| 亚洲国产女人aaa毛片在线| 性xxxx视频免费播放直播| 亚洲AV无码AV男人的天堂| 久久成人a毛片免费观看网站| 韩国免费一级成人毛片| 亚洲午夜国产精品| 最近最好的中文字幕2019免费 | 免费A级毛片无码免费视| 亚洲字幕在线观看| 成人免费视频77777| 亚洲精品色播一区二区| 免费a级黄色毛片| 国产黄在线播放免费观看| 久久伊人久久亚洲综合| 毛片免费全部播放无码| 亚洲国产系列一区二区三区| 午夜寂寞在线一级观看免费| 青娱乐在线视频免费观看| 久久亚洲av无码精品浪潮| 在线免费观看伊人三级电影| 91亚洲一区二区在线观看不卡| 99久热只有精品视频免费看| 亚洲人成伊人成综合网久久| 国产精品深夜福利免费观看| 一级毛片完整版免费播放一区| 伊伊人成亚洲综合人网7777| 57pao一国产成视频永久免费| 亚洲二区在线视频| 免费人成视网站在线观看不卡| jizz18免费视频| 亚洲精品mv在线观看| 色www永久免费视频| 中文在线观看永久免费| 亚洲国产精品综合福利专区| 国产福利免费在线观看| 久久这里只精品99re免费|