瘋狂

          STANDING ON THE SHOULDERS OF GIANTS
          posts - 481, comments - 486, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          拾遺補缺-logger

          Posted on 2009-11-02 15:03 瘋狂 閱讀(304) 評論(0)  編輯  收藏 所屬分類: java
          java.util.logging.Logger的使用
          2009-07-22 20:13

          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("嚴重訊息");
             logger.warning("警示訊息");
             logger.info("一般訊息");
             logger.config("設(shè)定方面的訊息");
             logger.fine("細微的訊息");
             logger.finer("更細微的訊息");
             logger.finest("最細微的訊息");
          }
          }

          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("嚴重的信息");
               logger.warning("警告信息");
               logger.info("一般信息");
               logger.config("設(shè)定方面的信息");
               logger.fine("細微的信息");
               logger.finer("更細微的信息");
               logger.finest("最細微的信息");
              

              }
          }

          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, "嚴重訊息");
             logger.log(Level.WARNING, "警示訊息");
             logger.log(Level.CONFIG, "一般訊息");
             logger.log(Level.CONFIG, "設(shè)定方面的訊息");
             logger.log(Level.FINE, "細微的訊息");
             logger.log(Level.FINER, "更細微的訊息");
             logger.log(Level.FINEST, "最細微的訊息");
          }
          }

          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";   
          }
          }

          主站蜘蛛池模板: 云安县| 巢湖市| 海丰县| 康保县| 丰台区| 南木林县| 南召县| 兴文县| 都匀市| 凌源市| 古丈县| 古交市| 崇文区| 灵璧县| 余姚市| 大城县| 晋城| 甘泉县| 乡宁县| 临洮县| 鱼台县| 波密县| 林周县| 上犹县| 奈曼旗| 惠水县| 大余县| 玉门市| 宜丰县| 杭锦旗| 仙游县| 鹤庆县| 讷河市| 三台县| 阿拉尔市| 济阳县| 登封市| 岳阳市| 江津市| 新宁县| 垦利县|