一、日志框架的选择

市面上常见的日志框架有很多,它们可以被分为两类:日志门面(日志抽象层)和日志实现,如下表。 
日志分类
描述
举例
日志门面(日志抽象层)
为 Java 日志访问提供一套标准和规范的 API 框架,其主要意义在于提供接口。
JCL(Jakarta Commons Logging)、SLF4j(Simple Logging Facade for Java)、jboss-logging
日志实现
日志门面的具体的实现
Log4j、JUL(java.util.logging)、Log4j2、Logback
通常情况下,日志由一个日志门面与一个日志实现组合搭建而成,Spring Boot 选用 SLF4J + Logback 的组合来搭建日志系统。 
SLF4J 是目前市面上最流行的日志门面,使用 Slf4j 可以很灵活的使用占位符进行参数占位,简化代码,拥有更好的可读性。Logback 是 Slf4j 的原生实现框架,它与 Log4j 出自一个人之手,但拥有比 log4j 更多的优点、特性和更做强的性能,现在基本都用来代替 log4j 成为主流。
优先级:
TRACE < DEBUG < INFO < WARN < ERROR
 
二、SLF4J的使用
1、如何在系统中使用SLF4J
以后在开发的时候,日志记录方法的调用,不应该来直接调用日志接口的实现类,而是调用日志抽象层里面的方法
应该给系统里面导入slf4j的jar包和
import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class HelloWorld { public static void main(String[] args) { Logger logger = LoggerFactory.getLogger(HelloWorld.class); logger.info("Hello World"); } }
三、spring boot的日志关系
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <version>2.6.2</version> <scope>compile</scope> </dependency>
spring boot使用他来做日志功能:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> <version>2.6.2</version> <scope>compile</scope> </dependency>
底层依赖关系:

总结:
1)、spring boot底层也是使用SLF4J+logback的方式进行日志记录
2)、spring boot也把其他的日志都替换成了slf4j
3)、中间转换包

4)、如果我们要引入其他框架,一定要把这个框架的默认日志依赖移除掉
四、日志使用
1、默认配置
spring boot已经默认帮我们配置好了日志;
2、修改默认日志配置:
我们可以根据自身的需求,通过全局配置文件(application.properties/yml)修改 Spring Boot 日志级别和显示格式等默认配置。 
在 application.properties 中,修改 Spring Boot 日志的默认配置,代码如下。
#日志级别
logging.level.com.atguigu=trace
#使用相对路径的方式设置日志输出的位置(项目根目录目录\my-log\mylog\spring.log)
#logging.file.path=my-log/myLog
#绝对路径方式将日志文件输出到 【项目所在磁盘根目录\springboot\logging\my\spring.log】
logging.file.path=/spring-boot/logging
#控制台日志输出格式
logging.pattern.console=%d{yyyy-MM-dd hh:mm:ss} [%thread] %-5level %logger{50} - %msg%n
#日志文件输出格式
logging.pattern.file=%d{yyyy-MM-dd} === [%thread] === %-5level === %logger{50} === - %msg%n
5)、输出格式:
我们可以通过以下常用日志参数对日志的输出格式进行修改,如下表。
序号
输出格式
说明
1
%d{yyyy-MM-dd HH:mm:ss, SSS} 
日志生产时间,输出到毫秒的时间
2
%-5level 
输出日志级别,-5 表示左对齐并且固定输出 5 个字符,如果不足在右边补 0
3
%logger 或 %c 
logger 的名称
4
 %thread  或 %t
输出当前线程名称
5
%p
日志输出格式
6
%message 或 %msg 或 %m
日志内容,即 logger.info("message")
7
%n
换行符
8
%class 或 %C
输出 Java 类名
9
 %file 或 %F
输出文件名
10
%L
输出错误行号
11
%method 或 %M
输出方法名
12
%l 
输出语句所在的行数, 包括类名、方法名、文件名、行数
13
hostName
本地机器名
14
hostAddress
本地 ip 地址
 

Spring Boot统一日志框架的更多相关文章

  1. 【spring boot】8.spring boot的日志框架logback使用

    在继续上一篇的Debug调试之后,把spring boot的日志框架使用情况逐步蚕食. 参考:http://tengj.top/2017/04/05/springbo 开篇之前,贴上完整applica ...

  2. Spring Boot默认日志logback配置解析

    前言 今天来介绍下Spring Boot如何配置日志logback,我刚学习的时候,是带着下面几个问题来查资料的,你呢 如何引入日志? 日志输出格式以及输出方式如何配置? 代码中如何使用? 正文 Sp ...

  3. Spring Boot与日志

    目录 1.日志框架 2.市面上的日志框架 2.1 下表行间无任何对应关系 2.2 日志门面:slf4j 2.3 日志实现:logback 2.4 Spring Boot怎么做的呢? 3.slf4j的使 ...

  4. Spring Boot 自定义日志详解

    本节内容基于 Spring Boot 2.0. 你所需具备的基础 什么是 Spring Boot? Spring Boot 核心配置文件详解 Spring Boot 开启的 2 种方式 Spring ...

  5. Java框架Spring Boot & 服务治理框架Dubbo & 应用容器引擎Docker 实现微服务发布

    微服务系统架构实践 开发语言Java 8 框架使用Spring boot 服务治理框架Dubbo 容器部署Docker 持续集成Gitlab CI 持续部署Piplin 注册中心Zookeeper 服 ...

  6. Laravel 和 Spring Boot 两个框架比较创业篇(二:人工成本)

    前面从开发效率比较了 Laravel 和 Spring Boot两个框架,见:Laravel 和 Spring Boot 两个框架比较创业篇(一:开发效率) ,这一篇打算比较一下人工成本. 本文说的人 ...

  7. Spring Boot 之日志记录

    Spring Boot 之日志记录 Spring Boot 支持集成 Java 世界主流的日志库. 如果对于 Java 日志库不熟悉,可以参考:细说 Java 主流日志工具库 关键词: log4j, ...

  8. Spring Boot系列——日志配置

    日志,通常不会在需求阶段作为一个功能单独提出来,也不会在产品方案中看到它的细节.但是,这丝毫不影响它在任何一个系统中的重要的地位. 为了保证服务的高可用,发现问题一定要即使,解决问题一定要迅速,所以生 ...

  9. Spring Boot Log4j2 日志学习

    简介 Java 中比较常用的日志工具类,有: Log4j. SLF4j. Commons-logging(简称jcl). Logback. Log4j2(Log4j 升级版). Jdk Logging ...

  10. Spring Boot Log 日志使用教程

    我们编写任何 Spring Boot 程序,可能绕不开的就是 log 日志框架(组件). 在大多数程序员眼中日志是用来定位问题的.这很重要. 本项目源码下载 注意本项目提供的源码已在后期重新编写,有部 ...

随机推荐

  1. MYSQL表操作(中篇)--数据类型

    1.数据类型 数值类型 1.整数类型 整数类型:TINYINT,SMALLINT,MEDIUMINT,INT,BIGINT 作用:存储年龄,等级,id,各种号码等 默认是有符号的 int[(m)][u ...

  2. mysql索引 数据库优化

    1.mysql索引结构b+树 a.首先要说二叉树,二叉查找树,数的结构不用多说,二叉查找树,大概就是几个原则,左边比右边的小,然后保持一个分布均匀,也就是树的高度尽量最小. b.b-树,b-树和二叉查 ...

  3. fastapi四:uvicorn.run支持的参数

    `app:指定应用app,'脚本名:FastAPI实例对象'.FastAPI实例对象 host: 字符串,允许被访问的形式 locahost.127.0.0.1.当前IP.0.0.0.0,默认为127 ...

  4. office图标变白新的处理方法

    https://www.haozhuangji.com/xtjc/133013759.html 一般搜索得到的处理方式与上面链接的处理方式差不多,都是通过安装wps或者修改注册表来实现的. 本文是我在 ...

  5. 吴恩达老师机器学习课程chapter07——聚类

    吴恩达老师机器学习课程chapter07--聚类 本文是非计算机专业新手的自学笔记,高手勿喷. 本文仅作速查备忘之用,对应吴恩达(AndrewNg)老师的机器学期课程第十三章. 缺少重要推演,只能作为 ...

  6. Java-面向对象进阶 方法继承、重写

    1.继承 子类继承父类后自动拥有父类非私有的属性和方法 Java中,一个父类可以被多个子类继承,一个子类只能继承一个父类 除了继承父类的属性和方法外,子类还拥有自己特有的属性和方法 如果子类的方法与父 ...

  7. Spark之详解及性能优化

    一.spark简介 Apache Spark是一个围绕速度.易用性和复杂分析构建的大数据处理框架. Spark是用Scala程序设计语言编写而成,运行于Java虚拟机(JVM)环境之上.目前支持如下程 ...

  8. c#获取当前进程使用内存

    public static string GetMemory()        {            Process proc = Process.GetCurrentProcess();     ...

  9. 准备工作——安装python和开发工具

    1.安装python 官网(https://www.python.org/downloads/)下载,按步骤安装,注意点击环境变量设置. 网上很多安装步骤详解. 2.或者直接安装anaconda,集成 ...

  10. pandas常用方法之read_excel详解

    前期准备 准备测试数据如下: fl_path = r"C:\Users\Desktop\test.xlsx" dic = { 'num': ['001', '002', '003' ...