JUL入门

目录

1、框架介绍

2、入门案例

 3、日志级别 Level枚举(其中还包括一些日志开关)

4、logger对象父子关系


1、框架介绍

  • JUL是java原生的日志框架,使用时不需引要用第三方类库,相对其他日志框架使用方式简单,在小型应用中灵活使用
  • Logger对象,调用其API来发布日志信息。Logger通常时应用程序访问日志系统的入口程序;
  • Appenders:也被称为Handlers,每个Logger都会关联一组Handlers,Logger会将日志交给关联Handlers处理,由Handlers负责将日志做记录。Handlers在此是一个抽象,其具体的实现决定了日志记录的位置可以是控制台、文件、网络上的其他日志服务或操作系统日志等;
  • Layouts: 也被称为Formatters,它负责对日志事件中的数据进行转换和格式化。Layouts决定了数据在一条日志记录中的最终形式;
  • Level:每条日志消息都有一个关联的日志级别。该级别粗略指导了日志消息的重要性和紧迫,我可以将Level和Loggers,Appenders做关联以便于我们过滤消息;
  • Filters:过滤器,根据需要定制哪些信息会被记录,哪些信息会被放过。

2、入门案例

public class JULTest {
    //入门案例
    @Test
    public void quick(){
        //1、获取日志记录器对象
        Logger logger=Logger.getLogger("com.example.demo.JUL.JULTest");
        //2、日志记录输出
        logger.info("info级别日志");

        //通用方法进行记录
        logger.log(Level.INFO,"info msg");//与上面的方式效果一样

        //通过占位符方式输出日志
        logger.log(Level.INFO,"用户:{0},年龄{1}",new String[]{"log","24"});
    }

}

 3、日志级别 Level枚举(其中还包括一些日志开关)

  • severe 最高级别,出现错误,终止
  • warning 出现问题,但不会导致程序终止
  • info 消息记录
  • config 配置信息
  • fine 记录debug时的日志信息,与下面参数粒度不一样而已
  • finer
  • finest
//日志级别、自定义配置
    @Test
    public void logLevel() throws IOException {
        Logger logger=Logger.getLogger("com.example.demo.JUL.JULTest");

        //自定义日志级别
        //关闭默认日志级别配置
        logger.setUseParentHandlers(false);

        //创建ConsoleHandler对象
        ConsoleHandler handler=new ConsoleHandler();
        //创建简单合适转换对象
        SimpleFormatter formatter=new SimpleFormatter();
        //关联
        handler.setFormatter(formatter);
        logger.addHandler(handler);
        //配置日志级别
        logger.setLevel(Level.ALL);
        handler.setLevel(Level.ALL);

//        //文件输出
//        FileHandler fileHandler=new FileHandler("/User/log/testJULLog.log");
//        fileHandler.setFormatter(formatter);
//        //关联
//        handler.setFormatter(formatter);
//        logger.addHandler(fileHandler);

        logger.severe("severe");
        logger.warning("warning");
        logger.info("info");//jul 默认的应用级别是info,比info高级别的输出,低的不输出,可以通过level调整
        logger.config("config");
        logger.fine("fine");
        logger.finer("finer");
        logger.finest("finest");

    }

4、logger对象父子关系

所有日志的顶级父对象:java.util.logging.LogManager$RootLogger@2a33fae0,值为空字符串

   //日志的父子关系
    @Test
    public void logParent() {
        Logger logger1 = Logger.getLogger("com");
        Logger logger2 = Logger.getLogger("com.example");

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

        //顶级父对象
        System.out.println(logger2.getParent().getParent());
    }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值