JUL 日志框架

JUL 日志框架

在这里插入图片描述
测试代码:

package com.ycy.mp_generator.jul;

import org.junit.jupiter.api.Test;

import java.io.IOException;
import java.io.InputStream;
import java.util.logging.*;

public class JULTest {

    //快速入门
    @Test
    public void testQuick(){
        //获取日志记录器
        Logger logger = Logger.getLogger("JULTest");
        //日志输出
        logger.info("hello jul");

        //通用方法进行记录
        logger.log(Level.INFO, "info msg");

        //通过占位符 方式输出变量值
        String name = "yyy";
        Integer age = 23;
        logger.log(Level.INFO,"用户名:{0},年龄:{1}",new Object[]{name,age});
    }

    //日志级别
    @Test
    public void testLogLevel(){
        //获取对象日志
        Logger logger = Logger.getLogger("JULTest");
        //日志记录输出
        logger.severe("server");
        logger.warning("warning");
        logger.info("info");//jul 默认日志输出级别
        logger.config("config");
        logger.fine("fine");
        logger.finer("finer");
        logger.finest("finest");
    }

    //自定义日志级别
    @Test
    public void testLogConfig() throws IOException {
        //获取对象日志
        Logger logger = Logger.getLogger("JULTest");

        // 关闭系统默认的日志级别
        logger.setUseParentHandlers(false);

        // 自定义配置日志级别


        // ConsoleHander
        ConsoleHandler consoleHhander = new ConsoleHandler();

        //创建简单格式化转化对象
        SimpleFormatter simpleFormatter = new SimpleFormatter();


        // 进行关联
        consoleHhander.setFormatter(simpleFormatter);
        logger.addHandler(consoleHhander);

        // 配置日志具体级别
        logger.setLevel(Level.ALL);
        consoleHhander.setLevel(Level.ALL);



        //场景 FileHandler  输出指定文件夹
        FileHandler fileHandler = new FileHandler("E:\\log\\jul.txt");

        //进行关联
        fileHandler.setFormatter(simpleFormatter);
        logger.addHandler(fileHandler);

        //日志记录输出
        logger.severe("server");
        logger.warning("warning");
        logger.info("info");//jul 默认日志输出级别
        logger.config("config");
        logger.fine("fine");
        logger.finer("finer");
        logger.finest("finest");

    }

    // Logger 对象父子关系

    @Test
    public void testLogParent(){
        Logger logger1 = Logger.getLogger("com.ycy");
        Logger logger2 = Logger.getLogger("com");

        //关闭默认配置
        logger2.setUseParentHandlers(false);

        //测试
        System.out.println(logger1.getParent() == logger2);

        System.out.println(logger1.getParent().getName());
        System.out.println(logger2.getParent().getName());


        // ConsoleHander
        ConsoleHandler consoleHhander = new ConsoleHandler();

        //创建简单格式化转化对象
        SimpleFormatter simpleFormatter = new SimpleFormatter();


        // 进行关联
        consoleHhander.setFormatter(simpleFormatter);
        logger2.addHandler(consoleHhander);

        // 配置日志具体级别
        logger2.setLevel(Level.ALL);
        consoleHhander.setLevel(Level.ALL);


        //日志记录输出
        logger1.severe("server");
        logger1.warning("warning");
        logger1.info("info");//jul 默认日志输出级别
        logger1.config("config");
        logger1.fine("fine");
        logger1.finer("finer");
        logger1.finest("finest");
    }


    @Test
    public void testLogProperties() throws IOException {
        // 读取配置文件,通过类加载器
        InputStream ins = JULTest.class.getClassLoader().getResourceAsStream("logging.properties");
        // 创建LogManger
        LogManager logManager = LogManager.getLogManager();
        // 通过LogManger加载配置文件
        logManager.readConfiguration(ins);

        // 创建日志记录器
        Logger logger = Logger.getLogger("com.ycy");

        //日志记录输出
        logger.severe("server");
        logger.warning("warning");
        logger.info("info");//jul 默认日志输出级别
        logger.config("config");
        logger.fine("fine");
        logger.finer("finer");
        logger.finest("finest");




        // 创建日志记录器
        Logger logger1 = Logger.getLogger("test");

        //日志记录输出
        logger1.severe("server test");
        logger1.warning("warning test");
        logger1.info("info test");//jul 默认日志输出级别
        logger1.config("config test");
        logger1.fine("fine test");
        logger1.finer("finer test");
        logger1.finest("finest test");

    }


}

配置文件:


#RootLogger顶级父元素指定的默认处理器为:ConsoleHandler
handlers= java.util.logging.FileHandler
#RootLogger顶级父元素指定的默认日志级别为:ALL
.level= ALL



# 自定定义 Logger 的使用
com.ycy.handlers = java.util.logging.ConsoleHandler
com.ycy.level = CONFIG


# 关闭默认配置
com.ycy.useParentHandlers = false





# 向文件输出的 handler 对象
# 指定日志文件的路径
java.util.logging.FileHandler.pattern = E:\\log\\java%u.log
# 指定日志文件的内容大小
java.util.logging.FileHandler.limit = 50000
# 指定日志文件数量
java.util.logging.FileHandler.count = 1
# 指定 handler 对象日志消息格式
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
# 指定以追加的方式添加日志内容
java.util.logging.FileHandler.append = true


# 向控制台输出的 handler 对象
# 指定 handler 对象的日志级别
java.util.logging.ConsoleHandler.level = ALL
# 指定 hander 对象的日志消息格式对象
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
# 指定 hangdler 对象的字符集
java.util.logging.ConsoleHandler.encoding = UTF-8

# 指定消息的格式
java.util.logging.SimpleFormatter.format = %4$s: %5$s [%1$tc]%n




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值