SpringBoot:底层是Spring框架,Spring框架默认使用的是JCL日志的抽象层
SpringBoot选用SLF4J和logback

如何系统地在系统中使用SLF4J

在开发的使用,日志记录方法的调用,不应该来直接调用日志的实现类,而是调用日志抽象层里面的方法

SLF4J的使用原理:

遗留问题

当使用多个框架时,不同的框架使用的日志组件不同,这时我们就要统一日志记录,即使是别的框架也要和我们统一使用SLF4J进行输出,如下图:

通过适配jar包将原来框架对这些日志的依赖接触(可以理解为设计模式中的适配器模式),使之可以使用SLF4J进行输出。

所以,如何让系统中所有的日志统一到SLF4J,参照以下几步:

  1. 将系统中其他日志框架先排除出去;
  2. 用中间包来替换原有的日志框架;
  3. 我们再导入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日志相关推荐

  1. 无法控制SpringBoot 中的DEBUG日志

    最近写的代码中,用到了 SpringBoot 和 log4j 日志,由于SpringBoot 中有自带的日志系统,所以log4j.properties 无法控制 SpringBoot 中的日志信息,老 ...

  2. springBoot中添加log4j日志

    在我们本地开发的时候,可以把结果打印到控制台上,但是当我们发布到测试或者生产环境的时候,我们需要把相应的信息打印到文件中.所以接下来我们将告诉大家如何操作. (1):引入相应的jar包. <de ...

  3. 用aspect在springboot中记录操作日志至数据库的详细过程

    代码来自若依管理系统的后台,我截取的其中用于记录操作日志的部分 1.切面 2.操作日志表 3.spring工具类 4.客户端工具类 异步工厂(产生任务用) 异步任务管理器 5.服务层 6.控制层 1. ...

  4. SpringBoot中替换logo日志(修改banner)

    banner SpringBoot项目下在resources目录下新建个banner.txt就行,这个文件里放的就是图案字符. 工具网站 文字转字符图网站: patorjk.com - 文字转字符图 ...

  5. java打印post响应报文_如何优雅的在 SpringBoot 中打印 RequestResponse 日志

    4 158 天前 /** * @author wangyiwen * @version 1.0 Created in 2020/7/14 18:36 * 该注入是为了可以获取到包装过的 httpReq ...

  6. SpringBoot中使用AOP打印接口日志的方法(转载)

    前言 AOP 是 Aspect Oriented Program (面向切面)的编程的缩写.他是和面向对象编程相对的一个概念.在面向对象的编程中,我们倾向于采用封装.继承.多态等概念,将一个个的功能在 ...

  7. 超简单的Springboot中的日志管理配置

    本案例中可以了解,怎么配置日志的输出路径,输出格式(比如说zip格式),按日期进行划分(今天的日志输出为一个文件,明天的日志输出到另一个文件),在按日期划分的同时又按文件大小划分(比如说每天的日志记录 ...

  8. springboot中怎么进行统一日志处理?

    一.springboot的日志级别 日志级别从低到高有:OFF.FATAL.ERROR.WARN.INFO.DEBUG.ALL 高级别包含了低级别,级别越高打印信息越先详细,默认情况下,spring ...

  9. 【SpringBoot】72、SpringBoot中接入轻量级分布式日志框架Graylog

    1.Graylog简介 Graylog 是一个开源的日志聚合.分析.审计.展现和预警工具.在功能上来说,和 ELK 类似,但又比 ELK 要简单很多.依靠着更加简洁,高效,部署使用简单的优势很快受到许 ...

最新文章

  1. 八大操作系统掌门人齐聚 1024 程序员节,千年岳麓见证开源新时代
  2. [开源]KJFramework.Message 智能二进制消息框架 -- 性能提升
  3. python代码创建数据库_python创建数据库代码
  4. Java servlet项目里的web.xml
  5. 中国大学慕课python答案第七章_中国大学慕课用Python玩转数据章节测试答案
  6. 【语言栏最小化到任务栏里面就消失不见了】
  7. JDBC是什么?和JDBC程序的基本编写
  8. 吴恩达机器学习 逻辑回归 作业3(手写数字分类) Python实现 代码详细解释
  9. linux快速安装mysql教程
  10. vue2.0_前端跨域解决方案之proxy代理
  11. 【微信支付开发流程】
  12. 分布式系统(2)——Paxos算法
  13. idea 行号栏太宽以及显示一些图标问题解决
  14. 阿里巴巴连接池mysql_阿里巴巴连接池(Druid)
  15. 微信应用架构!!-----微信应用能力篇
  16. Aqara首次发布会三大预测 全屋智能生活体验再次升级
  17. 网络原理之TCP/IP协议
  18. DGUT_FLY退役贴 FunCfans毕业总结-竞赛篇
  19. 怎么样才能在服务器显示皮肤,服务器怎么使用皮肤
  20. oracle 如何完全删除干净

热门文章

  1. 【人尽其才】颠覆思维☞合理分配工作
  2. 如何关闭vue项目中eslint的校验
  3. Python中完整的机器学习数据科学课程
  4. 云服务中IaaS、PaaS、SaaS的区别
  5. 40.多进程同步--锁--多把锁
  6. s9.16作业,员工信息表
  7. 返回一个二维整数数组中的最大的子数组和
  8. python工具使用笔记
  9. OpenStack之虚拟机热迁移
  10. ubuntu修改主机名后无法解析主机