SpringBoot中的SFL4J日志
SpringBoot:底层是Spring框架,Spring框架默认使用的是JCL日志的抽象层
SpringBoot选用SLF4J和logback
如何系统地在系统中使用SLF4J
在开发的使用,日志记录方法的调用,不应该来直接调用日志的实现类,而是调用日志抽象层里面的方法
SLF4J的使用原理:
遗留问题
当使用多个框架时,不同的框架使用的日志组件不同,这时我们就要统一日志记录,即使是别的框架也要和我们统一使用SLF4J进行输出,如下图:
通过适配jar包将原来框架对这些日志的依赖接触(可以理解为设计模式中的适配器模式),使之可以使用SLF4J进行输出。
所以,如何让系统中所有的日志统一到SLF4J,参照以下几步:
- 将系统中其他日志框架先排除出去;
- 用中间包来替换原有的日志框架;
- 我们再导入SLF4J其他的实现
SpringBoot里面的日志问题
底层依赖关系:
总结:
- SpringBoot底层也是使用SLF4J+logback的方式进行日志记录的
- SpringBoot也把其他的日志替换成了SLF4J
- 如果我们要引入其他框架,一定要把这个框架的默认日志包给移除掉
核心总结:
SpringBoot能自动适配所有的日志框架,而且底层使用SLF4J+logback的方式记录日志,引入其他框架的时候,只需要把这个框架依赖的日志包排除掉。
日志使用
默认配置
SpringBoot默认帮我们配置好了日志
在SpringBoot的测试类下
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.test.context.SpringBootTest;@SpringBootTest
class Springboot3ApplicationTests {//记录器Logger logger = LoggerFactory.getLogger(getClass());@Testvoid contextLoads() {//日志的级别://由低到高 trace<debug<info<warn<error//可以调整输出的日志级别,日志就只会在这个级别以后的高级别生效logger.trace("这时trace日志");//trace是用来跟踪一些信息的logger.debug("这是debug日志");//debug是用来输出一些调试日志的logger.info("这是info日志");//info是我们自己定义想要输出的一些信息logger.warn("这是warn日志");//warn是日志警告信息logger.error("这是error日志");//error是输出错误信息}}
我们可以手动调节日志的级别,只要在配置文件里面设置就行了,如下:
#设置日志输出的级别
logging.level.com.gcl=trace
指定文件路径下生成日志:
# SpringBoot提示logging.file已经过期了
# 但是还有logging.file.name和logging.file.path两个可以使用logging.file.name=D:/springboot.log
我们现在使用logging.file的话,SpringBoot会提示logging.file已经过期了,所以我们可以使用logging.file.name或logging.file.path来生成日志
logging.file.name不指定路径的话就在当前项目下的根目录生成日志文件
logging.file.path是在当前磁盘的根路径下创建Spring文件夹和里面的log文件,并使用spring.log作为默认文件名,如下:
logging.file.path=/spring/log
如果同时配置上面两个属性:默认只有logging.file.name 生效,会在项目根目录下生成 .log文件
输出日志的格式:
在控制台输出指定的日志格式
# 在控制台输出指定的日志格式logging.pattern.console=%d{yyyy-MMM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{15} - %msg%n
在指定文件中日志输出的格式
# 指定文件中日志输出的格式logging.pattern.file=%d{yyyy-MMM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{15} - %msg%n
SpringBoot中的SFL4J日志相关推荐
- 无法控制SpringBoot 中的DEBUG日志
最近写的代码中,用到了 SpringBoot 和 log4j 日志,由于SpringBoot 中有自带的日志系统,所以log4j.properties 无法控制 SpringBoot 中的日志信息,老 ...
- springBoot中添加log4j日志
在我们本地开发的时候,可以把结果打印到控制台上,但是当我们发布到测试或者生产环境的时候,我们需要把相应的信息打印到文件中.所以接下来我们将告诉大家如何操作. (1):引入相应的jar包. <de ...
- 用aspect在springboot中记录操作日志至数据库的详细过程
代码来自若依管理系统的后台,我截取的其中用于记录操作日志的部分 1.切面 2.操作日志表 3.spring工具类 4.客户端工具类 异步工厂(产生任务用) 异步任务管理器 5.服务层 6.控制层 1. ...
- SpringBoot中替换logo日志(修改banner)
banner SpringBoot项目下在resources目录下新建个banner.txt就行,这个文件里放的就是图案字符. 工具网站 文字转字符图网站: patorjk.com - 文字转字符图 ...
- java打印post响应报文_如何优雅的在 SpringBoot 中打印 RequestResponse 日志
4 158 天前 /** * @author wangyiwen * @version 1.0 Created in 2020/7/14 18:36 * 该注入是为了可以获取到包装过的 httpReq ...
- SpringBoot中使用AOP打印接口日志的方法(转载)
前言 AOP 是 Aspect Oriented Program (面向切面)的编程的缩写.他是和面向对象编程相对的一个概念.在面向对象的编程中,我们倾向于采用封装.继承.多态等概念,将一个个的功能在 ...
- 超简单的Springboot中的日志管理配置
本案例中可以了解,怎么配置日志的输出路径,输出格式(比如说zip格式),按日期进行划分(今天的日志输出为一个文件,明天的日志输出到另一个文件),在按日期划分的同时又按文件大小划分(比如说每天的日志记录 ...
- springboot中怎么进行统一日志处理?
一.springboot的日志级别 日志级别从低到高有:OFF.FATAL.ERROR.WARN.INFO.DEBUG.ALL 高级别包含了低级别,级别越高打印信息越先详细,默认情况下,spring ...
- 【SpringBoot】72、SpringBoot中接入轻量级分布式日志框架Graylog
1.Graylog简介 Graylog 是一个开源的日志聚合.分析.审计.展现和预警工具.在功能上来说,和 ELK 类似,但又比 ELK 要简单很多.依靠着更加简洁,高效,部署使用简单的优势很快受到许 ...
最新文章
- 八大操作系统掌门人齐聚 1024 程序员节,千年岳麓见证开源新时代
- [开源]KJFramework.Message 智能二进制消息框架 -- 性能提升
- python代码创建数据库_python创建数据库代码
- Java servlet项目里的web.xml
- 中国大学慕课python答案第七章_中国大学慕课用Python玩转数据章节测试答案
- 【语言栏最小化到任务栏里面就消失不见了】
- JDBC是什么?和JDBC程序的基本编写
- 吴恩达机器学习 逻辑回归 作业3(手写数字分类) Python实现 代码详细解释
- linux快速安装mysql教程
- vue2.0_前端跨域解决方案之proxy代理
- 【微信支付开发流程】
- 分布式系统(2)——Paxos算法
- idea 行号栏太宽以及显示一些图标问题解决
- 阿里巴巴连接池mysql_阿里巴巴连接池(Druid)
- 微信应用架构!!-----微信应用能力篇
- Aqara首次发布会三大预测 全屋智能生活体验再次升级
- 网络原理之TCP/IP协议
- DGUT_FLY退役贴 FunCfans毕业总结-竞赛篇
- 怎么样才能在服务器显示皮肤,服务器怎么使用皮肤
- oracle 如何完全删除干净