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

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

  • 相关阅读:
    区分replace()和replaceAll()
    error:java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long
    关于设计SQL表的一些问题
    SQL语句的学习理解
    error:安装手电筒程序后在打开程序后报错:你的camera flashlight正在被其他程序占据
    Error:Execution failed for task ':app:processDebugGoogleServices'. > No matching client found for package name 'com.fortythree.sos.flashlight'
    Error:Error converting bytecode to dex: Cause: com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/internal/adp;
    Android Studio 封装的类的继承
    Android SDK安装
    MongoDB探索之路(二)——系统设计之CRUD
  • 原文地址:https://www.cnblogs.com/qiangqiangqiang/p/7833295.html
Copyright © 2011-2022 走看看