本篇意为说明Spring默认日志实现与SpringBoot默认日志实现。

1、日志

在这之前,我们应该先了解一些日志框架。

具体可以看我这篇随笔:https://www.cnblogs.com/daihang2366/p/15201347.html

你得了解JCL、SLF4J、JUL、LogBack。

2、Spring5.x

在Spring5.x中,默认日志实现为JCL+JUL(其他版本未验证)。

证明

打开Spring源码,随便找一个类中获取日志Log的属性。

进入其getLog方法中:

在进入下一层方法中:

进入JavaUtilDelegate.createLog方法中后就能发现其是使用的JUL。

那么Spring是如何根据我们的依赖项来切换日志实现的呢?

注意看,在LogFactory的静态代码块当中,尝试了初始化log4j、slf4j,如果有这些类,就设置其指定的值到logApi中,供getLog中switch方法使用,那么既然都使用slf4j桥接器了,那具体能使用哪种日志实现就很容易扩展了。

3、SpringBoot

在SpringBoot2.5.7中,默认日志实现为SLF4J+LogBack(其他版本未验证)。

进入LogFactory.getLog方法中查看:

再进入LogAdapter.createLog方法当中:

此时注意logApi的值为SLF4J_LAL,在spring5.x中logApi是没有值的,直接走进了default中,而default中则是使用JUL,这里可以看一个Slf4jAdapter.createLocationAwareLog方法中返回的是logBack。

可以看到,Log对象那个是Slf4J桥接器,实际其使用的log为logback的日志对象。

Spring日志与SpringBoot日志的更多相关文章

  1. ELK springboot日志收集

    一.安装elasticsearch 可以查看前篇博客 elasticsearch安装.elasticsearch-head 安装 二.安装 配置 logstash 1.安装logstash 下载地址: ...

  2. springboot日志

    1.日志 Spring Boot内部日志系统使用的是Commons Logging,但开放底层的日志实现.默认为会Java Util Logging, Log4J, Log4J2和Logback提供配 ...

  3. Spring Boot Logback应用日志

    e Spring Boot Logback应用日志 2015-09-08 19:57 7673人阅读 评论(0) 收藏 举报 . 分类: Spring Boot(51) . 目录(?)[+] 日志对于 ...

  4. SpringBoot实用小技巧之动态设置SpringBoot日志级别

    有时线上问题我们用打日志的方式来观察错误或埋点参数,但由于这些日志如果都打出来会占用大量存储空间而且覆盖了一些有效信息,所以线上级别一般设置INFO,调试级别用作特殊情况下.此时如果线上想查看调试级别 ...

  5. springboot启动的时候日志缺少Mapping日志等

    发现启动springboot日志不全 缺失启动日志如: 正常启动日志 解决办法: 更换较低版本的spring boot父级依赖. <parent> <groupId>org.s ...

  6. springboot 日志【转】【补】

    市面上的日志框架 日志门面 (日志的抽象层) 日志实现 JCL(Jakarta Commons Logging)(2014) SLF4j(Simple Logging Facade for Java) ...

  7. 【docker】docker部署spring boot服务,但是docker logs查看容器输出控制台日志,没有日志打印,日志未打印,docker logs不打印容器日志

    如题: docker部署spring boot服务,但是docker logs查看容器输出控制台日志,没有日志打印,日志未打印,docker logs不打印容器日志 场景再现: docker部署并启动 ...

  8. SpringBoot 日志框架

    默认的日志框架 logback SpringBoot使用Logback作为默认的日志框架.logback 是log4j框架的作者开发的新一代日志框架,它效率更高.能够适应诸多的运行环境,同时天然支持S ...

  9. SpringBoot Logback配置,SpringBoot日志配置

    SpringBoot Logback配置,SpringBoot日志配置  SpringBoot springProfile属性配置 ================================ © ...

  10. (转)Springboot日志配置(超详细,推荐)

    Spring Boot-日志配置(超详细) 更新日志: 20170810 更新通过 application.yml传递参数到 logback 中. Spring Boot-日志配置超详细 默认日志 L ...

随机推荐

  1. 简单记录五个Linux设置定时任务的步骤(自动化运维必备)

    这几天我们国庆节休息,但是作为运维工作的同学们是不是也不能闲着,担心工作中是不是有任务在执行中需要维护.于是,我们很多的运维工作都是用的自动化运维监控,如果有故障都会定时的处理和告警的.这个与我们的L ...

  2. 更改材质uv

  3. .net基础—多线程(一)

    基本概念 进程 打开任务管理器,从任务管理器里面可以看到当前所有正在运行的进程.那么究竟什么是进程呢? 进程(Process)是操作系统中的一个基本概念,它包含着一个运行程序所需要的资源.一个正在运行 ...

  4. 2022.11.13 NOIP2022 模拟赛八

    「ROI 2017 Day 2」存储器 无聊的题. 首先 \(s\) 中每一个片段,其在 \(t\) 中对应的字符必然是相同的. 对于 \(t\) 中的每一个片段,考虑检查能否操作出这个片段,实际上只 ...

  5. UntrimmedNets for weakly supervised action recognition and detection概述

    0.前言 相关资料: 论文 github 论文解读(CSDN) 论文基本信息: 领域:动作识别与检测 发表时间:CVPR2017(2017.5.22) 1.针对的问题 这篇论文之前的行为识别方法严重依 ...

  6. WDA学习(22):WDA PLG,Application跳转传参

    1.15 WDA PLG,Application跳转传参 本实例Outbound Plugs页面跳转传参,URL跳转Application传参. 1.创建Component:Z_TEST_WDA_L6 ...

  7. Software--电商平台--Module 5 Order & Payment

    2018-01-10  14:11:30 电商平台 订购和支付 模块 一: 整体示意图 二:构建一个框架来处理 领域模型内部发生的事情--领域事件 IDomainEvent 标识模型中的 Domain ...

  8. idea提交时忽略.class、.iml文件和文件夹或目录的方法

    第一种方法 在Setings–> Editor --> File Types -->Ignore files and folders中添加需要忽略的文件和文件夹: .idea 忽略 ...

  9. openpyxl-使用API总结

    import openpyxlfrom openpyxl.comments import Comment from openpyxl.styles import Font, Alignment, Bo ...

  10. 用Python中的hashlib实现md5和sha加密

    文章目录 一.用 pandas 读取 Excel 数据 二.加密库 hashlib 三. pandas中的 map() 方法 四.数据加密工具 本文分享知识: pandas读取Excel数据 read ...