java日志框架总结

一、日志框架简单分类介绍

java常用的日志框架、可以分为两组:

1、JCL、JUL、Log4j;

2、SLF4J、Log4j2、Logback;

其中第一组是比较早期的日志实现框架,JCL并不是具体的日志实现框架,JCL其实是定义了一套日志接口,具体实现则由 Log4j 或 JUL 来完成。也就是说JCL负责命题,然后Log4j、JUL负责实现。

第二组是目前比较流行的框架,其中SLF4J也不是具体的实现,而是一套日志门面像JCL一样,专门负责命题,然后Log4j2、Logback负责实现,具体的方法。后来SLf4J也兼容了JUL、Log4j。

日志门面 :只提供日志相关的接口定义,即相应的 API,而不提供具体的接口实现。日志门面在使用时,可以动态或者静态地指定具体的日志框架实现,解除了接口和实现的耦合,使用户可以灵活地选择日志的具体实现框架。

日志系统 :与日志门面相对,它提供了具体的日志接口实现,应用程序通过它执行日志打印的功能。

二、JUL

JUL全称Java Util Logging,是Java原生的日志框架,使用时不需要另外引入第三方类库,相对于其他日志框架来说其特点是使用方便,能够在小型应用中灵活应用。但JUL日志框架使用的频率并不高,但一旦需要解除此类的代码,仍然要求开发人员能够迅速看懂代码,并理解。

1、框架结构图:

复制代码
Loggers:
    被称为记录器,应用程序通过获取Logger对象,调用其API来发布日志信息,Logger通常是应用程序访问日志系统的入口程序;
Appenders:
    也被称为Handlers,每个Logger都会关联一组Handlers,Logger会将日志交给关联的Handlers处理,由Handlers负责将日志记录;
    Handlers在此是一个抽象类,由其具体的实现决定日志记录的位置是控制台、文件、网络上的其他日志服务异或是操作系统日志;
Layouts:
    也被称为Formatters,它负责对日志事件中的数据进行转换和格式化,Layouts决定了记录的数据在一条日志记录中的最终显示形式;
Level:
    每条日志消息都有一个关联的日志级别。该级别粗略指导了日志消息的重要性和紧迫,可以将Level和Loggers或Appenders做关联以便于我们
  过滤消息;
Filters:
    过滤器,根据需要定制哪些信息会被记录,哪些信息会被放过。
一个完整的日志记录过程如下:
    用户使用Logger来进行日志记录的行为,Logger可以同时持有若干个Handler,日志输出操作是由Handler完成的;在Handler输出日志前,
  会经过Filter的过滤,判断哪些日志级别放行、哪些拦截,Handler会将日志内容输出到指定位置(日志文件、控制台等);Handler在输出日
  志时会使用Layout对日志内容进行排版,之后再输出到指定的位置。
相关推荐
铲子Zzz6 分钟前
Java使用接口AES进行加密+微信小程序接收解密
java·开发语言·微信小程序
霖檬ing11 分钟前
K8s——配置管理(1)
java·贪心算法·kubernetes
小小小新人1212326 分钟前
C语言 ATM (4)
c语言·开发语言·算法
Two_brushes.33 分钟前
【linux网络】网络编程全流程详解:从套接字基础到 UDP/TCP 通信实战
linux·开发语言·网络·tcp/udp
小白学大数据36 分钟前
R语言爬虫实战:如何爬取分页链接并批量保存
开发语言·爬虫·信息可视化·r语言
争不过朝夕,又念着往昔39 分钟前
Go语言反射机制详解
开发语言·后端·golang
Azxcc01 小时前
C++异步编程入门
开发语言·c++
Vic101011 小时前
Java 开发笔记:多线程查询逻辑的抽象与优化
java·服务器·笔记
Biaobiaone1 小时前
Java中的生产消费模型解析
java·开发语言
我命由我123451 小时前
前端开发问题:SyntaxError: “undefined“ is not valid JSON
开发语言·前端·javascript·vue.js·json·ecmascript·js