| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> SpringBoot集成slf4j日志系统 -> 正文阅读 |
|
[Java知识库]SpringBoot集成slf4j日志系统 |
作者平台: | CSDN:blog.csdn.net/qq\_4115394… | 知乎:www.zhihu.com/people/1024… | GitHub:github.com/JiangXia-10… | 微信公众号:1024笔记
前言日志系统作为一个应用系统的重要部分之一,它能够有助于我们在系统在线上环境中如果有问题,及时发现问题,并且定位问题,从而解决问题,保证服务的高可用,减少生产事故的发生。所以日志的重要性,不言而喻。 Java开发使用的日志框架有很多,常用的比如有JUL(java.util.logging)、log4j、logback、JCL(Jakarta commons-logging)等等。SpringBoot 提供了一套日志系统,SpringBoot 默认选择的是 SLF4J + Logback 的组合,如果不需要更改为其他日志系统(如 Log4j2 等),则无需多余的配置,LogBack 默认会将日志打印到控制台上。 由于新建的 Spring Boot 项目一般都会引用 spring-boot-starter 或者 spring-boot-starter-web,而这两个起步依赖中都已经包含了对于 spring-boot-starter-logging 的依赖,所以,我们无需额外添加依赖。 接下来,本文主要总结一下项目中目前使用的SpringBoot集成slf4j日志配置。 什么是slf4jslf4j,全称是Simple Logging Facade for Java****,即简单门面日志。它是对所有日志框架制定的一种规范、标准、接口,并不是一个框架的具体的实现,它只服务于各种各样的日志系统。 slf4j提供了统一的记录日志的接口,对不同日志系统的具体实现进行了抽象化,只要按照其提供的方法记录即可,最终日志的格式、记录级别、输出方式等通过绑定具体的日志系统来实现。在项目中使用了slf4j记录日志,并且绑定了log4j(pom.xml中配置了相应的jar包依赖),则日志会以log4j的风格输出;后期需要改为以logback的风格输出日志,只需要将jar包log4j替换成logback即可,根本不需要修改日志文件的代码。 前面说到SpringBoot 默认选择的是 SLF4J + Logback 的组合,如果不需要更改为其他日志系统,则无需多余的配置即可使用。首先就看一个最简单的用法,如下,在启动类中引入Logger日志记录,看下打印的日志结果:
项目启动成功后控制台日志信息如下 : 这里最主要的方法就是LoggerFactory的getLogger(xxxxxxx.class)。这个方法是将当前所在的类作为入参传递,输出日志就会显示对应的xxx类名。这样声明的好处就是方便定位日志,准确编写class信息能够提供快速定位日志的效率。 虽然SpringBoot提供了slf4j,但是日志记录是需要根据项目实地需要进行配置后,才能有助于我们更好地使用它。 使用slf4j因为springboot默认集成了slf4j,所以在新建的 Spring Boot 项目一般都会引用 spring-boot-starter 或者 spring-boot-starter-web,而这两个起步依赖中都已经包含了对于 spring-boot-starter-logging 的依赖,所以,无需在pom文件中导入额外添加依赖。如果再导入sl4j相关依赖,可能会出现多个相同依赖的错误。 接下来看看application.yml配置文件中的相关配置,对于日志的自定义都可以在配置文件中进行相关配置: 比如我这里的部分配置如下:
logging.level用来指定具体的包中应用程序日志的输出级别。trace表示将com.springboot.springbootdemo.controller包下的所有日志输出级别为 trace,会将操作数据库的 sql 打印出来,开发时设置成 trace 方便定位问题,在生产环境上,将这个日志级别再设置成 error 级别即可。 日志常用的五个级别,根据严重程度由低到高,依次为:debug(调试 ) < info(消息) < warn(警告) < error(错误) < fatal(严重错误)。通常可以根据实际所需要的颗粒度的大小选择其中的几个,比较常用debug,info,warn,error4个级别。 实际开发需要制定日志的配置文件内容,这样系统运行后,根据定制化需求才能输出我们所需的指定日志记录信息。可以在 resource文件夹下新增locbak.xml配置文件,并且在application.yml配置文件中如上设置config路径(需是绝对路径),logback.xml配置文件详细内容如下:
在logback.xml中可以定义日志输出的格式、路径、控制台输出格式、文件大小、保存时长等内容。其实这些文件也可以在application.yml配置文件中进行配置,比如:
上述配置完成之后,启动项目则在logback.xml配置文件中配置的日志保存路径下,会根据配置生成对应的日志文件,如下: 总结日志系统的强大的功能是我们日常开发,系统维护排查问题和解决问题的有利工具,所以根据自己的实际项目配置合理的日志系统,有助于我们更好地开发和维护好项目系统! 如有任何问题或者不对的地方欢迎一起交流讨论学习! 本项目源码在: 欢迎下载、Star! 相关推荐: |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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 20:43:41- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |