栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JUL入门

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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());
    }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1004145.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号