zoukankan      html  css  js  c++  java
  • Logger用法

    1. logger的输出有两种方式:
      ①log.log(Level.INFO,"message")
      ②log.info("mesage")
      其他级别的输出与此类似。
    2. 获得com.sample.LoggerSample这个类的logger对象。
      可设置其Level,这样在LoggerSample运行时会根据在LoggerSample中预先定义好的Level级别来输出log。
    3. 设置logger输出级别

      各级别按降序排列如下:
      SEVERE(最高值)
      WARNING
      INFO
      CONFIG
      FINE
      FINER
      FINEST(最低值)
      此外,还有一个级别 OFF,可用来关闭日志记录,使用级别 ALL 启用所有消息的日志记录。
      如设置的Level级别比预定义的输出级别高,则Level较低处的log就不会输出。

    4. 可以给logger添加Handler来进行不同形式的输出:
      ①FileHandler:输出到文件
      ②ConsoleHandler:输出到控制台
      ③SocketHandler:输出到网络
    public class loggerTest {
        /** 存放的文件夹 **/
        private static String file_name = "反馈日志";
        
        /**
         * 得到要记录的日志的路径及文件名称
         * @return
         */
        private static String getLogName() {
            StringBuffer logPath = new StringBuffer();
            logPath.append(System.getProperty("user.home"));          //用户的主目录
            logPath.append("\"+file_name);
            File file = new File(logPath.toString());
            if (!file.exists())
                file.mkdir();
            
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            logPath.append("\"+sdf.format(new Date())+".log");
            return logPath.toString();
            
        }
        
        /**
         * 配置Logger对象输出日志文件路径
         * @param logger
         * @param level 在日志文件中输出level级别以上的信息
         * @throws SecurityException
         * @throws IOException
         */
        public static void setLogingProperties(Logger logger, Level level) {
            FileHandler fh;
            try {
                fh = new FileHandler(getLogName(), true);
                logger.addHandler(fh);// 日志输出文件
                // logger.setLevel(level);
                fh.setFormatter(new SimpleFormatter());// 输出格式
                // logger.addHandler(new ConsoleHandler());//输出到控制台(默认都会输出到控制台  通过logger.setUseParentHandlers(false)关掉)
            } catch (SecurityException e) {
                logger.log(Level.SEVERE, "安全性错误", e);
            } catch (IOException e) {
                logger.log(Level.SEVERE, "读取文件日志错误", e);
            }
    
        }
        
        public static void setLogingProperties(Logger logger) throws SecurityException, IOException {
            setLogingProperties(logger,Level.ALL);
        }
        
        public static void main(String[] args) {
            Logger logger = Logger.getLogger("log.text");
            try {
                loggerTest.setLogingProperties(logger);
    //            logger.setUseParentHandlers(false);                       //不输出到控制台(放在输出语句之前)
                logger.log(Level.INFO,"aaaaa");
                logger.setLevel(Level.WARNING);                             //设置日志级别  设置级别以下的不显示( logger默认的级别是INFO)    
                logger.log(Level.WARNING, "ccccc");
                logger.info("bbbbb");    
                
            } catch (SecurityException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            
        }
        
    }

    输出结果:

    十一月 14, 2017 4:36:32 下午 test.loggerTest main
    信息: aaaaa
    十一月 14, 2017 4:36:32 下午 test.loggerTest main
    警告: ccccc

    相应文件夹也会有对应文件

  • 相关阅读:
    POJ 1659 Frogs' Neighborhood
    zoj 2913 Bus Pass(BFS)
    ZOJ 1008 Gnome Tetravex(DFS)
    POJ 1562 Oil Deposits (DFS)
    zoj 2165 Red and Black (DFs)poj 1979
    hdu 3954 Level up
    sgu 249 Matrix
    hdu 4417 Super Mario
    SPOJ (BNUOJ) LCM Sum
    hdu 2665 Kth number 划分树
  • 原文地址:https://www.cnblogs.com/qiangqiangqiang/p/7833295.html
Copyright © 2011-2022 走看看