心無痕的博客

          常用鏈接

          統(tǒng)計

          積分與排名

          JAVA技術(shù)文檔

          JAVA精典網(wǎng)站

          開發(fā)工具

          數(shù)據(jù)庫

          最新評論

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

          1.在程序里面寫死需要哪些log級別,使用哪些subscribe

          import java.util.logging.*;
          public class LoggingProgramSetPubSubpro
          {
           public static void main(String[] args)
           {
            Logger logger = Logger.getLogger("loggingTest");
            logger.setLevel(Level.INFO);//這個設(shè)定最重要
            
            ConsoleHandler consoleHandler = new ConsoleHandler();
            consoleHandler.setLevel(Level.OFF);//這個好像不起作用
            
            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.*;
          /**

          說明:我們可以在C:\Documents and Settings\yay目錄下面找到j(luò)ava0.log文件
           它是一個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決定的
          注意這里說得這個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代表自動編號
             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() +//就是哪個類里面用的了你
             "\n" +"Level\t|\tLoggerName\t|\tMessage\t|\n" +
            logRecord.getLevel() + //是SEVERE還是WARNING還是別的
              "\t|\t" +
             logRecord.getLoggerName() +//這個logger發(fā)布者
               "\t|\t" +
             logRecord.getMessage() + //消息內(nèi)容
                "\t|\n\n";   
           }
          }

          posted on 2008-03-07 19:27 心無痕 閱讀(9917) 評論(5)  編輯  收藏 所屬分類: JAVA

          評論

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

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

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

          不錯  回復(fù)  更多評論   

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

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

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

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

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

          寫了錯別是
          logger.setUseParentHandlers(false);//不使用上級logger的Handler  回復(fù)  更多評論   

          主站蜘蛛池模板: 盖州市| 通许县| 唐山市| 萨嘎县| 永新县| 望都县| 信宜市| 鄢陵县| 永善县| 镇沅| 崇明县| 富源县| 台湾省| 萝北县| 赣州市| 南昌县| 当涂县| 嵊州市| 莲花县| 江阴市| 丰原市| 孝义市| 荔波县| 广汉市| 贺州市| 津市市| 阜南县| 旬邑县| 巴林右旗| 潼关县| 磐安县| 溆浦县| 泽库县| 舟山市| 苍溪县| 鸡泽县| 合肥市| 庆元县| 白山市| 铜梁县| 吉木乃县|