心無(wú)痕的博客

          常用鏈接

          統(tǒng)計(jì)

          積分與排名

          JAVA技術(shù)文檔

          JAVA精典網(wǎng)站

          開(kāi)發(fā)工具

          數(shù)據(jù)庫(kù)

          最新評(píng)論

          學(xué)習(xí)使用java.util.logging.Logger類(lèi)--轉(zhuǎn)載

          1.在程序里面寫(xiě)死需要哪些log級(jí)別,使用哪些subscribe

          import java.util.logging.*;
          public class LoggingProgramSetPubSubpro
          {
           public static void main(String[] args)
           {
            Logger logger = Logger.getLogger("loggingTest");
            logger.setLevel(Level.INFO);//這個(gè)設(shè)定最重要
            
            ConsoleHandler consoleHandler = new ConsoleHandler();
            consoleHandler.setLevel(Level.OFF);//這個(gè)好像不起作用
            
            logger.addHandler(consoleHandler);
            
            logger.severe("嚴(yán)重訊息");
            logger.warning("警示訊息");
            logger.info("一般訊息");
            logger.config("設(shè)定方面的訊息");
            logger.fine("細(xì)微的訊息");
            logger.finer("更細(xì)微的訊息");
            logger.finest("最細(xì)微的訊息");
           }
          }

          2.如何在配置文件里面改,好處是不用重新編譯原文件

          import java.util.logging.*;
          /**

          說(shuō)明:我們可以在C:\Documents and Settings\yay目錄下面找到j(luò)ava0.log文件
           它是一個(gè)xml格式的,
           我們可以在${jdk}\jar\lib下面找到logging.properties文件,你可以在這里面修改

           

          */
          public class LoggingPropertiesFile
           {
            public static void main(String[] args)
             {

              Logger logger = Logger.getLogger("loggingTest");
              logger.severe("嚴(yán)重的信息");
              logger.warning("警告信息");
              logger.info("一般信息");
              logger.config("設(shè)定方面的信息");
              logger.fine("細(xì)微的信息");
              logger.finer("更細(xì)微的信息");
              logger.finest("最細(xì)微的信息");
              

             }
           }

          3.使用log方法,使用自定義的Formatter

          import java.util.logging.*;
          /**

          輸出格式是由java.util.logging.Formatter決定的
          注意這里說(shuō)得這個(gè)Formatter是屬于哪里包里面的,不要搞混了

          */
          public class LoggingLogMethod
          {
           public static void main(String[] args)
           {
            Logger logger = Logger.getLogger("loggingTest");
            logger.setLevel(Level.ALL);
            
            ConsoleHandler consoleHandler = new ConsoleHandler();
            consoleHandler.setLevel(Level.ALL);
            
            logger.addHandler(consoleHandler);
            
            try
            {
             //%h代表用戶主目錄
             //%g代表自動(dòng)編號(hào)
             FileHandler  fileHandler=new FileHandler("%h/loggingHome%g.log");
             fileHandler.setLevel(Level.ALL);
             fileHandler.setFormatter(new YAYFormatter());
             
             
             logger.addHandler(fileHandler);
            }
            catch (Exception e)
            {
             e.printStackTrace();
            }
            
            
            
            logger.log(Level.SEVERE, "嚴(yán)重訊息");
            logger.log(Level.WARNING, "警示訊息");
            logger.log(Level.CONFIG, "一般訊息");
            logger.log(Level.CONFIG, "設(shè)定方面的訊息");
            logger.log(Level.FINE, "細(xì)微的訊息");
            logger.log(Level.FINER, "更細(xì)微的訊息");
            logger.log(Level.FINEST, "最細(xì)微的訊息");
           }
          }

          4.如何自定義java.util.logging.Formatter

          import java.util.logging.*;
          public class YAYFormatter extends Formatter
          {
           public String format(LogRecord logRecord)
           {
            return  "LogRecord info: " + logRecord.getSourceClassName() +//就是哪個(gè)類(lèi)里面用的了你
             "\n" +"Level\t|\tLoggerName\t|\tMessage\t|\n" +
            logRecord.getLevel() + //是SEVERE還是WARNING還是別的
              "\t|\t" +
             logRecord.getLoggerName() +//這個(gè)logger發(fā)布者
               "\t|\t" +
             logRecord.getMessage() + //消息內(nèi)容
                "\t|\n\n";   
           }
          }

          posted on 2008-03-07 19:27 心無(wú)痕 閱讀(9913) 評(píng)論(5)  編輯  收藏 所屬分類(lèi): JAVA

          評(píng)論

          # re: 學(xué)習(xí)使用java.util.logging.Logger類(lèi)--轉(zhuǎn)載 2008-10-07 11:13 junphine

          如何通過(guò)配置文件配置logger?  回復(fù)  更多評(píng)論   

          # re: 學(xué)習(xí)使用java.util.logging.Logger類(lèi)--轉(zhuǎn)載 2009-10-27 09:55 阿斯頓

          不錯(cuò)  回復(fù)  更多評(píng)論   

          # re: 學(xué)習(xí)使用java.util.logging.Logger類(lèi)--轉(zhuǎn)載 2009-10-27 14:12

          的是  回復(fù)  更多評(píng)論   

          # re: 學(xué)習(xí)使用java.util.logging.Logger類(lèi)--轉(zhuǎn)載 2009-11-14 12:11 sean.he

          consoleHandler.setLevel(Level.OFF);//這個(gè)好像不起作用
          加上這行代碼就可以了
          logger.setUseParentHandlers(false);//不適用上級(jí)logger的Handler  回復(fù)  更多評(píng)論   

          # re: 學(xué)習(xí)使用java.util.logging.Logger類(lèi)--轉(zhuǎn)載 2009-11-14 12:11 sean.he

          寫(xiě)了錯(cuò)別是
          logger.setUseParentHandlers(false);//不使用上級(jí)logger的Handler  回復(fù)  更多評(píng)論   

          主站蜘蛛池模板: 靖州| 义马市| 资兴市| 北票市| 鹤壁市| 平定县| 普陀区| 宣汉县| 揭阳市| 军事| 昌吉市| 巴林右旗| 礼泉县| 上饶县| 临泽县| 青神县| 太仆寺旗| 三穗县| 石楼县| 银川市| 东海县| 岑巩县| 汾西县| 福安市| 西充县| 天柱县| 天镇县| 五大连池市| 木里| 城市| 库伦旗| 东城区| 衡水市| 凌源市| 盱眙县| 科技| 浦北县| 龙口市| 湖口县| 克什克腾旗| 鄯善县|