瘋狂

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

          拾遺補缺-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);//這個設定最重要
            
             ConsoleHandler consoleHandler = new ConsoleHandler();
             consoleHandler.setLevel(Level.OFF);//這個好像不起作用
            
             logger.addHandler(consoleHandler);
            
             logger.severe("嚴重訊息");
             logger.warning("警示訊息");
             logger.info("一般訊息");
             logger.config("設定方面的訊息");
             logger.fine("細微的訊息");
             logger.finer("更細微的訊息");
             logger.finest("最細微的訊息");
          }
          }

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

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

          說明:我們可以在C:\Documents and Settings\yay目錄下面找到java0.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("設定方面的信息");
               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, "設定方面的訊息");
             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發布者
                "\t|\t" +
              logRecord.getMessage() + //消息內容
                 "\t|\n\n";   
          }
          }

          主站蜘蛛池模板: 晋宁县| 大埔区| 乌兰浩特市| 博白县| 龙岩市| 集安市| 荣昌县| 甘南县| 漳州市| 泗洪县| 巴彦淖尔市| 平塘县| 尼勒克县| 太原市| 九台市| 阿坝| 通河县| 英吉沙县| 错那县| 惠来县| 肇东市| 大关县| 桃江县| 黔东| 铅山县| 基隆市| 淮阳县| 临海市| 德江县| 淳安县| 吴川市| 吴堡县| 山东省| 镇平县| 都匀市| 都江堰市| 九龙城区| 应用必备| 凤台县| 梨树县| 鄂温|