本篇文章为你整理了Spring Boot 整合 Logback 日志(springboot整合log4j)的详细内容,包含有springboot集成logback springboot整合log4j springboot整合日志框架 springboot整合log4j2 Spring Boot 整合 Logback 日志,希望能帮助你了解 Spring Boot 整合 Logback 日志。
Spring Boot 支持 Java Util Logging,Log4J,Log4J2 和 Logback 等日志框架,默认采用 Logback 日志。
在实际 Spring Boot 项目中使用 Spring Boot 默认日志配置是不能够满足实际生产及开发需求的,需要选定适合的日志输出框架,灵活调整日志输出级别、日志输出格式等。
此处主要讲述如何进行 Spring Boot 项目的 Logback 默认日志详细配置。
强烈建议使用默认的 Logback 日志配置,因为它比 log4j 性能好很多!
首先,官方推荐使用的 xml 名字的格式为:logback-spring.xml 而不是 logback.xml,至于为什么,因为带 spring 后缀的可以使用 springProfile 这个标签(PS:这个标签用于切换“开发环境”和“生产环境”)。
下面配置可看情况自行修改!
本文配置参考:传送门
?xml version="1.0" encoding="UTF-8" ?
scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true
scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位默认单位是毫秒,当scan为true时此属性生效,默认时间间隔为1分钟
debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态,默认值为false
configuration scan="true" scanPeriod="2 seconds"
定义滚动记录文件appender 作用:滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件
RollingFileAppender 参数:
append :如果是true日志被追加到文件结尾,如果是false清空现存文件,默认是true
file :被写入的文件名,可以是相对目录也可以是绝对目录,如果上级目录不存在会自动创建,没有默认值
rollingPolicy :当发生滚动时,决定RollingFileAppender的行为,涉及文件移动和重命名
triggeringPolicy :告知RollingFileAppender合适激活滚动
prudent :当为true时不支持FixedWindowRollingPolicy支持TimeBasedRollingPolicy,但是有两个限制:1不支持也不允许文件压缩,2不能设置file属性必须留空
appender name="fileAppender"
!-- 如果是true,日志被追加到文件结尾,如果是false,清空现存文件.默认是true --
prudent true /prudent
rollingPolicy
!-- 每天滚动一次的日志 只保留30天内的日志文件 --
fileNamePattern logs/%d{yyyy-MM-dd}/springboot_%i.log /fileNamePattern
maxHistory 30 /maxHistory
timeBasedFileNamingAndTriggeringPolicy
maxFileSize 10MB /maxFileSize
/timeBasedFileNamingAndTriggeringPolicy
/rollingPolicy
encoder
!-- 对日志进行格式化 --
pattern %date %level [%thread] %logger{10}.%class{0}#%method[%file:%line] %n%msg%n /pattern
charset utf-8 /charset
/encoder
/appender
appender name="errorAppender"
prudent true /prudent
rollingPolicy
fileNamePattern logs/%d{yyyy-MM-dd}/springboot-error_%i.log /fileNamePattern
maxHistory 30 /maxHistory
timeBasedFileNamingAndTriggeringPolicy
maxFileSize 10MB /maxFileSize
/timeBasedFileNamingAndTriggeringPolicy
/rollingPolicy
encoder
pattern %date %level [%thread] %logger{10}.%class{0}#%method[%file:%line] %n%msg%n /pattern
charset utf-8 /charset
/encoder
配置日志级别过滤器 作用:根据日志级别进行过滤,如果日志级别等于配置级别过滤器会根据onMath和onMismatch接收或拒绝日志
level :设置过滤级别
onMatch :用于配置符合过滤条件的操作
onMismatch :用于配置不符合过滤条件的操作
此处配置为只接收ERROR日志级别信息
filter
level ERROR /level
onMatch ACCEPT /onMatch
onMismatch DENY /onMismatch
/filter
/appender
!-- 定义控制台appender 作用:把日志输出到控制台 --
appender name="console"
layout
pattern %date %level [%thread] %logger{10}.%class{0}#%method[%file:%line] %n%msg%n /pattern
/layout
/appender
!-- 将root的打印级别设置为"error",指定了名字为"console","fileAppender","errorAppender"的appender --
root level="error"
appender-ref ref="console"/
appender-ref ref="fileAppender"/
appender-ref ref="errorAppender"/
/root
logger用来设置某一个包的日志打印级别
loger 仅有一个name属性,一个可选的level和一个可选的addtivity属性
name:用来指定受此loger约束的某一个包或者具体的某一个类
level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF
addtivity:是否向上级loger传递打印信息。默认是true,会将信息输入到root配置指定的地方,可以包含多个appender-ref,标识这个appender会添加到这个logger
logger name="com.xcbeyond.springboot" level="debug"/
/configuration
直接在需要使用日志打印的类上添加 lombok 的注解 @Slf4j 即可!
PS:注意需要添加 Lombok 依赖!
!-- lombok --
dependency
groupId org.projectlombok /groupId
artifactId lombok /artifactId
optional true /optional
/dependency
示例:
@SpringBootTest
@Slf4j
class RedisMysqlDemoApplicationTests {
@Test
void contextLoads() {
// 日志级别从低到高分为 TRACE DEBUG INFO WARN ERROR FATAL
log.trace("================ trace =================");
log.debug("================ debug =================");
log.info("================ info =================");
log.warn("================ warn =================");
log.error("================ error =================");
PS:注意 Logger 和 LoggerFactory 导的哪个包!
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class RedisMysqlDemoApplicationTests {
private static final Logger log = LoggerFactory.getLogger(RedisMysqlDemoApplicationTests.class);
@Test
void contextLoads() {
// 日志级别从低到高分为 TRACE DEBUG INFO WARN ERROR FATAL
log.trace("================ trace =================");
log.debug("================ debug =================");
log.info("================ info =================");
log.warn("================ warn =================");
log.error("================ error =================");
以上就是Spring Boot 整合 Logback 日志(springboot整合log4j)的详细内容,想要了解更多 Spring Boot 整合 Logback 日志的内容,请持续关注盛行IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。