广州网站建设建设,阿里云wordpress安装教程,网站排名怎么做上去,网站地图做法做SpringBoot教程#xff08;十九#xff09; | SpringBoot集成Slf4j日志门面 一、概述二、前言三、引入依赖 (不需要额外引入了)四、自定义Logback的配置文件#xff08;一般都需配置#xff09;情况一#xff1a;不配置任何关于logback的配置文件情况二#xff1a;配置关… SpringBoot教程十九 | SpringBoot集成Slf4j日志门面 一、概述二、前言三、引入依赖 (不需要额外引入了)四、自定义Logback的配置文件一般都需配置情况一不配置任何关于logback的配置文件情况二配置关于logback的配置文件 五、如何使用一不使用 Slf4j 注解二使用 Slf4j 注解 一、概述 对于一个web项目来说日志框架是必不可少的日志的记录可以帮助我们在开发以及维护过程中快速的定位错误。 slf4j,log4j,logback,JDK Logging等这些日志框架都是我们常见的日志框架本文主要介绍这些常见的日志框架关系和SpringBoot整合Sfl4jlogback的实践。 二、前言
从Spring Boot的1.x版本开始它就默认集成了Logback作为日志框架。这一默认配置在后续版本中得到了保持尽管用户仍然有选择使用其他日志框架如Log4j2的自由。
本文也是主要讲 Logback日志框架Slf4j日志门面
三、引入依赖 (不需要额外引入了) 在Spring Boot 1.X版本后 中使用logbackSLF4J作为日志记录通常不需要额外引入依赖。 Spring Boot的设计理念之一就是“开箱即用”Convention Over Configuration它通过提供一系列的启动器starters来简化项目的依赖管理和配置。 对于日志记录Spring Boot 1.X版本后 默认集成了SLF4J作为日志门面Facade并提供了logback作为日志实现的默认选择。 这意味着当你创建一个基于Spring Boot 1.X的新项目时只要你引入了spring-boot-starter或其包含日志功能的变体如spring-boot-starter-web Spring Boot就会自动配置logback和SLF4J你无需手动添加这些依赖。
依赖包含情况
spring-boot-starter这是一个核心的Spring Boot启动器它包含了Spring Boot的核心功能包括自动配置支持、日志logbackSLF4J等。spring-boot-starter-web这个启动器用于开发Web应用程序它包含了spring-boot-starter因此也间接包含了logback和SLF4J的依赖。
四、自定义Logback的配置文件一般都需配置 Spring Boot 会自动从类路径classpath中查找 logback-spring.xml、logback-classic.xml、logback.groovy 和 logback.xml 文件按照顺序并使用它们作为 Logback 的配置。 情况一不配置任何关于logback的配置文件
默认日志级别Spring Boot的默认日志级别为INFO日志格式Spring Boot在控制台上的默认日志输出格式可能因版本而异但通常包含时间戳、日志级别、线程名称、日志输出者的名称通常是类名或文件名以及日志消息本身。默认文件输出如果不进行任何配置Spring Boot通常不会将日志输出到文件中而是仅输出到控制台
情况二配置关于logback的配置文件 文件名命名为 logback.xml (一般正常情况下)位置logback.xml 文件位于 src/main/resources 目录下 Spring Boot 会在启动时自动加载这个文件而无需你在 application.yml 或 application.properties 中进行任何配置 日志常用的五个级别根据严重程度由低到高依次为debug(调试 ) info(消息) warn(警告) error(错误) fatal(严重错误)。 通常可以根据实际所需要的颗粒度的大小选择其中的几个当前常用debuginfowarnerror4个级别。一般都是配置的info级别
logback.xml 具体内容
?xml version1.0 encodingUTF-8?
!-- 开启定时扫描1分钟扫一次修改日志配置文件后1分钟生效 --
configuration debugfalse scantrue scanPeriod60000!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--property nameLOG_HOME value../logs /property nameLOG_NAME valueintegration /!-- 彩色日志 --conversionRule conversionWordclr converterClassorg.springframework.boot.logging.logback.ColorConverter /!-- 控制台输出 --appender nameSTDOUT classch.qos.logback.core.ConsoleAppenderencoder classch.qos.logback.classic.encoder.PatternLayoutEncoder!--格式化输出%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度%msg日志消息%n是换行符--pattern%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr([%-10.10thread]){faint} %clr(%-5level) %clr(%-50.50logger{50}:%-3L){cyan} %clr(-){faint} %msg%n/pattern/encoder/appender!-- 按照每天生成日志文件 --appender nameFILE classch.qos.logback.core.rolling.RollingFileAppenderfile${LOG_HOME}/${LOG_NAME}.log/filerollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicy!--日志文件输出的文件名--fileNamePattern${LOG_HOME}/${LOG_NAME}.%d{yyyy-MM-dd}.log/fileNamePattern!--日志文件保留天数--maxHistory30/maxHistory/rollingPolicyencoder classch.qos.logback.classic.encoder.PatternLayoutEncoder!--格式化输出%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度%msg日志消息%n是换行符--pattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%-10.10thread] %-5level %-50.50logger{50}:%-3L - %msg%n/pattern/encoder/appender!-- 日志输出级别 此处设置的为INFO级别 --root levelINFOappender-ref refSTDOUT /appender-ref refFILE //root/configuration扩展 如果你想要将logback.xml配置文件中的变量抽取到application.yml或application.properties中
可以 使用 springProperty 标签
例如
configuration !-- 定义属性从application.yml或application.properties中读取 -- springProperty scopecontext namecustomLogLevel sourcelogging.custom.level defaultValueINFO/ !-- 使用该属性设置日志级别 -- logger namecom.example.myapp level${customLogLevel}/ !-- 其他配置... --
/configurationapplication.yml 示例
logging: custom: level: DEBUG或者如果你使用的是application.properties
logging.custom.levelDEBUG五、如何使用
一不使用 Slf4j 注解
import org.slf4j.Logger;
import org.slf4j.LoggerFactory; public class MyClass { // 关键点private static final Logger logger LoggerFactory.getLogger(MyClass.class); public void someMethod() { logger.debug(This is a debug message); logger.info(This is an info message); logger.warn(This is a warn message); logger.error(This is an error message, new RuntimeException(Oops!)); }
}二使用 Slf4j 注解
1.需要引入Lombok依赖
dependency groupIdorg.projectlombok/groupId artifactIdlombok/artifactId version你的Lombok版本号/version scopeprovided/scope
/dependency2.具体使用
import lombok.extern.slf4j.Slf4j; Slf4j
public class MyService { public void doSomething() { log.debug(This is a debug message); log.info(This is an info message); log.warn(This is a warn message); log.error(This is an error message, new RuntimeException(Oops!)); }
}参考文章 【1】SpringBoot项目引入logback进行项目日志管理 【2】SpringBoot整合Sfl4jlogback的实践