| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> Spring Boot 日志(八) -> 正文阅读 |
|
[Java知识库]Spring Boot 日志(八) |
一、日志框架的选择 ????????市面上常见的日志框架有很多,它们可以被分为两类:日志门面(日志抽象层)和日志实现,如下表: ????????通常情况下,日志由一个日志门面与一个日志实现组合搭建而成,Spring Boot 选用 SLF4J + Logback 的组合来搭建日志系统。 ????????SLF4J 是目前市面上最流行的日志门面,使用 Slf4j 可以很灵活的使用占位符进行参数占位,简化代码,拥有更好的可读性。 ????????Logback 是?Slf4j?的原生实现框架,它与 Log4j 出自一个人之手,但拥有比?log4j?更多的优点、特性和更做强的性能,现在基本都用来代替?log4j?成为主流。? 二、日志的使用 ????????在项目开发中,日志记录方法的调用,不应该来直接调用日志的实现类,而是调用日志抽象层里面的方法 ????????现在用?SLF4J 来举例。使用?SLF4J 记录日志时,我们需要在应用中导入 SLF4J 及日志实现,并在记录日志时调用 SLF4J 的方法,例如: LoggerTest.java:
?三、统一日志框架 ????????通常一个完整的应用下会依赖于多种不同的框架,而且每一种框架记录日志时使用的日志框架也不尽相同,例如,Spring Boot(slf4j+logback),Spring(commons-logging)、Hibernate(jboss-logging)等等。那么如何统一日志框架的使用呢? 从上图中可以看出,统一日志框架一共需要以下 3 步 :
????????SLF4J 官方给出的统一日志框架的方案是“狸猫换太子”,即使用一个替换包来替换原来的日志框架,例如 log4j-over-slf4j 替换 Log4j(Commons Logging API)、jul-to-slf4j.jar 替换 JUL(java.util.logging API)等等。 四、Spring Boot统一日志框架 ?????????我们在使用 Spring Boot 时,同样可能用到其他的框架,例如 Mybatis、Spring MVC、 Hibernate 等等,这些框架的底层都有自己的日志框架,此时我们也需要对日志框架进行统一。 ????????Spring Boot 的核心启动器 spring-boot-starter 引入了 spring-boot-starter-logging,使用 IDEA 查看其依赖关系,如下图: ????????从图上图可知,spring-boot-starter-logging 的 Maven 依赖不但引入了 logback-classic (包含了日志框架 SLF4J 的实现),还引入了 log4j-to-slf4j(log4j 的替换包),jul-to-slf4j (JUL 的替换包),即 Spring Boot 已经为我们完成了统一日志框架的 3 个步骤中的 2 步。
?五、日志信息解析 1.Spring Boot默认日志输出级别和日志输出信息分析 ?可以看出Spring Boot的日志默认输出级别为info。 默认的日志输出如下:
输出内容元素具体如下:
2.日志级别 以上日志级别依次由低到高,即1<2<3<4<5。 当一条日志信息的级别大于或等于配置文件的级别时,就对这条日志进行记录,即配置文件的日志级别为info时,那么error、warn、info级别的日志都会被记录。 3.日志输出格式 九、参考? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 13:18:49- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |