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

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

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

    Java民工的鐵皮房

    Consciousness Of Programming - wjywilliam 想飛,總是會(huì)飛的......
    posts - 8, comments - 14, trackbacks - 0, articles - 9
      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    Log4j 各種輸出配置方法運(yùn)用實(shí)例

    Posted on 2008-04-16 12:00 wjywilliam 閱讀(2507) 評(píng)論(0)  編輯  收藏 所屬分類: Log4j


     1. 以下是針對(duì)指定pakage層輸出到單獨(dú)Log文件實(shí)例

    在配置文件中按包名或類名來(lái)定義Logger
    在程序中按類名取Logger

    定義:
    log4j.rootLogger=debug,stdout
    log4j.logger.com.mypkg=debug,mypkg
    log4j.logger.com.mypkg.db=info,db
    log4j.logger.com.mypkg.mail=debug,mail

    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%5r [%5p][%c{2}] %m%n

    log4j.appender.mypkg=org.apache.log4j.RollingFileAppender
    log4j.appender.mypkg.File=system.log
    log4j.appender.mypkg.Append=true
    log4j.appender.mypkg.MaxFileSize=1MB
    log4j.appender.mypkg.MaxBackupIndex=1
    log4j.appender.mypkg.layout=org.apache.log4j.PatternLayout
    log4j.appender.mypkg.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%-5p][%c{1}] - %m%n

    log4j.appender.db=org.apache.log4j.FileAppender
    log4j.appender.db.File=db.log
    log4j.appender.db.Append=true
    log4j.appender.db.layout=org.apache.log4j.PatternLayout
    log4j.appender.db.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%-5p][%c{1}] - %m%n

    log4j.appender.mail=org.apache.log4j.FileAppender
    log4j.appender.mail.File=mail.log
    log4j.appender.mail.Append=true
    log4j.appender.mail.layout=org.apache.log4j.PatternLayout
    log4j.appender.mail.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%-5p][%c{1}] - %m%n

    log4j.additivity.com.mypkg=false
    log4j.additivity.com.mypkg.db=false
    log4j.additivity.com.mypkg.mail=false

    使用:
    package com.mypkg;
    public class Class1
    {
        private static Logger logger = Logger.getLogger(Class1.class);

        ...
        if(logger.isDebugEnabled())
            logger.debug("debug info");
        ...
    }

    package com.mypkg.db;
    public class Class2
    {
        private static Logger logger = Logger.getLogger(Class2.class);

        ...
        if(logger.isDebugEnabled())
            logger.debug("debug info");
        ...
    }

    package com.mypkg.mail;
    public class Class3
    {
        private static Logger logger = Logger.getLogger(Class3.class);

        ...
        if(logger.isDebugEnabled())
            logger.debug("debug info");
        ...
    }

    這樣一來(lái):
      com.mypkg.mail下的類(Class3)的日志就會(huì)記入mail.log
      com.mypkg.db下的類(Class2)的日志就會(huì)記入db.log
      com.mypkg下的類(Class1)及類似com.mypkg.pkg1這樣的未定義相應(yīng)Logger的包下的類(com.mypkg.pkg1.Class4)的日志就會(huì)記入system.log
      com.mypkg以外的類(com.pkg1.Class5)的日志就會(huì)記錄到rootLogger,即輸出到控制臺(tái)

    不管增加還是刪除日志配置項(xiàng),都不需要修改程序:
        如果想去掉其中一個(gè),如mail,只需從配置文件中去掉"log4j.logger.com.mypkg.mail=info,mail"這一行,去掉后com.mypkg.mail包下的類(如Class3)的日志就會(huì)記入system.log中。
        如果要新增Logger,如com.mypkg.pkg2,只需在配置文件中增加類似配置,com.mypkg.pkg2包下的類的日志就會(huì)記入新增的log文件,而不再記入system.log文件。

    2. 以下是針對(duì)某個(gè)class單獨(dú)輸出到Log文件實(shí)例

    還可以為指定類配置一個(gè)logger,如為類com.mypkg.db.ConnectionPool配置一個(gè)logger:
      log4j.logger.com.mypkg.db.ConnectionPool=debug,pool

      log4j.appender.pool=org.apache.log4j.FileAppender
      log4j.appender.pool.File=pool.log
      log4j.appender.pool.Append=true
      log4j.appender.pool.layout=org.apache.log4j.PatternLayout
      log4j.appender.pool.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%-5p][%c{1}] - %m%n

      log4j.additivity.com.mypkg.db.ConnectionPool=false

    這樣一來(lái),ConnectionPool類的日志就會(huì)記入pool.log,不會(huì)記入db.log

    還可以兩個(gè)Logger使用同一個(gè)appender:
      log4j.logger.com.pkg1=debug,system
      log4j.logger.com.pkg2=info,system
    這樣的話com.pkg1和com.pkg2下的日志會(huì)分別以degug和info級(jí)別輸出到system這個(gè)appender指定的文件中

    3. 以下是針對(duì)指定Log Level單獨(dú)輸出到單獨(dú)的Log文件實(shí)例

      log4j.logger.errorLogger=ERROR, errorLog

      log4j.appender.errorLogger=org.apache.log4j.RollingFileAppender
      log4j.appender.errorLogger.File=/logs/error/errorLog.log
      log4j.appender.errorLogger.MaxFileSize=512KB
      log4j.appender.errorLogger.MaxBackupIndex=3
      log4j.appender.errorLogger.layout=org.apache.log4j.PatternLayout
      log4j.appender.errorLogger.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%-5p][%c{1}] - %m%n

    關(guān)鍵在程序里面new log object時(shí)候這樣寫:
    慣例:
       Log log = LogFactory.getLog(this.getClass());
    指定輸出的appender(appender制定輸出的Level):
      
    Log log = LogFactory.getLog(errorLog);


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 久久久久国色AV免费观看| 最近免费中文在线视频| 亚洲国产精品国自产拍电影| 8x8×在线永久免费视频| 亚洲成a人无码亚洲成www牛牛| 亚洲AV无码乱码在线观看牲色| 成人爽a毛片免费| 亚洲一级毛片在线观| 无码国产亚洲日韩国精品视频一区二区三区 | 久久精品中文字幕免费| 亚洲AV成人一区二区三区在线看| 免费久久精品国产片香蕉| 久久99免费视频| 亚洲AV色欲色欲WWW| 亚洲成人精品久久| 四虎精品亚洲一区二区三区| 青青青国产在线观看免费 | 大地资源在线观看免费高清| 成人毛片100免费观看| 亚洲人成网站在线观看播放青青| 亚洲国产综合人成综合网站| 亚州免费一级毛片| 13小箩利洗澡无码视频网站免费| 亚洲а∨精品天堂在线| 亚洲欧洲第一a在线观看| 亚洲精品无码成人片在线观看| 希望影院高清免费观看视频| AAAAA级少妇高潮大片免费看| 亚洲日本VA中文字幕久久道具| 久久亚洲国产成人亚| 日韩亚洲国产二区| 免费羞羞视频网站| 精品免费久久久久久久| 99久久免费国产精品热| 免费夜色污私人影院网站| 亚洲无圣光一区二区| 亚洲色无码专区一区| 久久精品国产99精品国产亚洲性色| 吃奶摸下高潮60分钟免费视频 | 免费国产成人午夜私人影视 | 国产免费69成人精品视频|