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对日志内容进行排版,之后再输出到指定的位置。
相关推荐
学长毕业设计4 分钟前
基于SpringBoot的瑜伽馆网站的设计与实现(源码+文档+讲解视频)
java·spring boot·后端
一嘴一个橘子6 分钟前
nginx 常用命令(在 nginx 目录下执行)
java
leonkay14 分钟前
C# 特性(Attribute)——【1】基础讲解
开发语言·青少年编程·面试·c#·.net·个人开发
harmful_sheep24 分钟前
java group by常见用法
java·开发语言·python
SKH.30 分钟前
Linux软件编程(6)线程间通信
java·开发语言·数据库
Rain的Java大神之路35 分钟前
PC版网站被狂刷怎么处理
java·数据库·redis·后端·mysql·web安全·运维开发
whcyhhh1 小时前
头歌实践教学平台:数据科学与大数据技术导论(十六)
大数据·开发语言·python
萌动的小火苗1 小时前
数据结构面试题【无答案】
c语言·开发语言·数据结构·链表
宸津-代码粉碎机1 小时前
AI工程化高阶实战|从Demo到生产落地核心架构、全套源码与避坑指南
java·大数据·开发语言·人工智能·python·架构
XR1234567882 小时前
办公网自主创新建设怎么选?信创办公场景的选型逻辑
开发语言·php