• JUL 日志


    JUL日志级别

    日志分为7个级别,详细信息我们可以在Level类中查看:

    • SEVERE(最高值)- 一般用于代表严重错误
    • WARNING - 一般用于表示某些警告,但是不足以判断为错误
    • INFO (默认级别) - 常规消息
    • CONFIG
    • FINE
    • FINER
    • FINEST(最低值)

    Properties配置文件

    # RootLogger 的默认处理器为
    handlers= java.util.logging.ConsoleHandler
    # RootLogger 的默认的日志级别
    .level= CONFIG
    
    • 1
    • 2
    • 3
    • 4

    使用日志处理器

    public class Main {
        public static void main(String[] args) {
            Logger logger = Logger.getLogger(Main.class.getName());  // 获取logger
            logger.log(Level.SEVERE, "severe error");
            logger.log(Level.WARNING, "warning");
            logger.log(Level.INFO, "info");
            logger.log(Level.CONFIG, "config");
            logger.log(Level.FINE, "fine");
            logger.log(Level.FINEST,"finest");
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    默认级别低于INFO的不会打印到控制台上

    setLevel(Level newLevel):设置日志级别,指定此日志记录器将记录的消息级别。低于此值的消息级别将被丢弃。级别值 Level.OFF 可用于关闭日志记录。Level.ALL表示全部级别日志将被打印

    自定义日志处理器级别

    public class Main {
        public static void main(String[] args) {
            Logger logger = Logger.getLogger(Main.class.getName());  // 获取logger
    
            logger.setLevel(Level.ALL);          // 设置全部级别日志都打印
            logger.setUseParentHandlers(false);  // 不使用父(默认)日志处理器
            // 使用自定义日志处理器
            ConsoleHandler consoleHandler = new ConsoleHandler();
            consoleHandler.setLevel(Level.ALL);
            logger.addHandler(consoleHandler);
    
            logger.log(Level.SEVERE, "severe error");
            logger.log(Level.WARNING, "warning");
            logger.log(Level.FINE, "lower than info");
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    文件日志处理器

    日志输出到本地的log文件上

            FileHandler fileHandler = new FileHandler("test.log");
            fileHandler.setLevel(Level.WARNING);
            fileHandler.setFormatter(simpleFormatter);
            logger.addHandler(fileHandler);
    
    • 1
    • 2
    • 3
    • 4

    但是这样得到的日志格式是xml格式的,使用SimpleFormatter将日志格式化

            SimpleFormatter simpleFormatter = new SimpleFormatter();
            fileHandler.setFormatter(simpleFormatter);
    
    • 1
    • 2

    日志过滤

            Logger logger = Logger.getLogger(Main.class.getName());  // 获取logger
            logger.setFilter(record -> false); // lambda
    
    • 1
    • 2

    setFilter接收的参数为一个Filter接口

    指定某日志输出

            Logger logger = Logger.getLogger(Main.class.getName());  // 获取logger
            logger.setFilter(record -> record.getMessage().equals("hello"));
            logger.info("hello");
    
    • 1
    • 2
    • 3

    开启mybatis日志

    mybatis-config.xml中添加:

        <settings>
            <setting name="logImpl" value="STDOUT_LOGGING"/>
        settings>
    
    • 1
    • 2
    • 3

    .

  • 相关阅读:
    nodejs如何删除指定文件夹的图片
    广州规划新增30条地铁 来看看线路图?
    全面理解链表数据结构:各种节点操作、做题技巧,易错点分析与题目清单(C++代码示例,不断更新)
    基于SpringBoot的桂林旅游景点导游平台
    Company personnel management Privacy Policy
    图论入门题题解
    docker参数大P与小p的区别
    【ASP.NET Core】标记帮助器——抽象层
    【算法每日一练]-图论(保姆级教程 篇2(topo排序,并查集,逆元))#topo排序 #最大食物链 #游走 #村村通
    x86-Hardware-Compatibility-Assessment-and-Porting-Guide
  • 原文地址:https://blog.csdn.net/weixin_63301726/article/details/134198040