Spring Boot Log4j2配置

本文介绍了如何在Spring Boot中配置Log4j2,包括在pom.xml和application.properties中的设置,以及log4j2.properties文件中的常用配置,如控制台输出和日志按天滚动。文章还提到了Log4j2的特色——按日志级别显示彩色日志,并探讨了如何优化配置,将debug、info、error日志分别输出到不同的文件中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pom.xml

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>

application.properties

指定log4j2配置文件的位置与名称。

logging.config=classpath:log4j2.properties

log4j2.properties

常用配置,控制台输出,按日滚动日志。

rootLogger.appenderRef.rolling.ref.level可以配置日志级别,这里不作演示。

特色:日志按日志级别输出彩色日志。

name=PropertiesConfig
property.filename=logs
appenders=console, rolling

# rootLogger
rootLogger.level=info
rootLogger.appenderRef.stdout.ref=Stdout
rootLogger.appenderRef.rolling.ref=InfoRollingFile

# console
appender.console.type=Console
appender.console.name=Stdout
appender.console.layout.type=PatternLayout
appender.console.layout.pattern=%highlight{%d{MM-dd HH:mm:ss.SSS} [%5p] [%40.40c{1.}:%3L] - %m%n}{FATAL=white, ERROR=red, WARN=blue, INFO=Green, DEBUG=Yellow, TRACE=blue}

# rolling file
appender.rolling.type=RollingFile
appender.rolling.name=InfoRollingFile
appender.rolling.fileName=./logs/rolling.log
appender.rolling.filePattern=./logs/rolling_%d{yyyy-MM-dd}_%i.log
appender.rolling.layout.type=PatternLayout
appender.rolling.layout.pattern=%highlight{%d{MM-dd HH:mm:ss.SSS} [%5p] [%40.40c{1.}:%3L] - %m%n}{FATAL=white, ERROR=red, WARN=blue, INFO=Green, DEBUG=Yellow, TRACE=blue}
appender.rolling.policies.type=Policies
appender.rolling.policies.time.type=TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval=1
appender.rolling.policies.time.modulate=true
appender.rolling.policies.size.type=SizeBasedTriggeringPolicy
appender.rolling.policies.size.size=20M
appender.rolling.strategy.type=DefaultRolloverStrategy
appender.rolling.strategy.max=100

这里写图片描述

优化

分别只打印 debug、info、error 日志到对应的log文件中.

name=PropertiesConfig
# 公共变量
# 文件路径
property.filePath=logs
property.filePattern=logs/%d{yyyy-MM-dd}
# 输出格式
property.layoutPattern=%highlight{%d{MM-dd HH:mm:ss.SSS} [%5p] [%40.40c{1.}:%3L] - %m%n}{FATAL=white, ERROR=red, WARN=blue, INFO=Green, DEBUG=Yellow, TRACE=blue}
# 记录器
appenders=Console,Debug,Info,Error
# 根记录器,所有记录器的父辈
rootLogger.level=debug
# 级别过滤(过滤日志记录)
# filters = threshold
filter.threshold.type=ThresholdFilter
# 只记录debug级别以上的日志,大小写无关:(ALL<)TRACE<DEBUG<INFO<WARN<ERROR<FATAL(<OFF)
filter.threshold.level=debug
# console
appender.Console.type=Console
appender.Console.name=Stdout
appender.Console.layout.type=PatternLayout
appender.Console.layout.pattern=${layoutPattern}
rootLogger.appenderRef.stdout.ref=Stdout
# debug rolling file
appender.Debug.type=RollingFile
appender.Debug.name=DebugRollingFile
appender.Debug.fileName=${filePath}/debug.log
appender.Debug.filePattern=${filePattern}/debug_%d{yyyy-MM-dd}_%i.log
appender.Debug.layout.type=PatternLayout
appender.Debug.layout.pattern=${layoutPattern}
appender.Debug.policies.type=Policies
appender.Debug.policies.time.type=TimeBasedTriggeringPolicy
appender.Debug.policies.time.interval=1
appender.Debug.policies.time.modulate=true
appender.Debug.policies.size.type=SizeBasedTriggeringPolicy
appender.Debug.policies.size.size=20M
appender.Debug.strategy.type=DefaultRolloverStrategy
appender.Debug.strategy.max=100
# 过滤debug以上信息
appender.Debug.filter.threshold.type=ThresholdFilter
appender.Debug.filter.threshold.level=INFO
appender.Debug.filter.threshold.onMatch=DENY
appender.Debug.filter.threshold.onMisMatch=NEUTRAL
# InfoRollingFile 日志级别
rootLogger.appenderRef.Debug.level=debug
rootLogger.appenderRef.Debug.ref=DebugRollingFile
# info rolling file
appender.Info.type=RollingFile
appender.Info.name=InfoRollingFile
appender.Info.fileName=${filePath}/info.log
appender.Info.filePattern=${filePattern}/info_%d{yyyy-MM-dd}_%i.log
appender.Info.layout.type=PatternLayout
appender.Info.layout.pattern=${layoutPattern}
appender.Info.policies.type=Policies
appender.Info.policies.time.type=TimeBasedTriggeringPolicy
appender.Info.policies.time.interval=1
appender.Info.policies.time.modulate=true
appender.Info.policies.size.type=SizeBasedTriggeringPolicy
appender.Info.policies.size.size=20M
appender.Info.strategy.type=DefaultRolloverStrategy
appender.Info.strategy.max=100
# 过滤 info 以上信息,只输出 info 级别日志
appender.Info.filter.threshold.type=ThresholdFilter
appender.Info.filter.threshold.level=warn
appender.Info.filter.threshold.onMatch=DENY
appender.Info.filter.threshold.onMisMatch=NEUTRAL
# InfoRollingFile 日志级别
rootLogger.appenderRef.Info.level=info
rootLogger.appenderRef.Info.ref=InfoRollingFile
# error rolling file
appender.Error.type=RollingFile
appender.Error.name=ErrorRollingFile
appender.Error.fileName=${filePath}/error.log
appender.Error.filePattern=${filePattern}/error_%d{yyyy-MM-dd}_%i.log
appender.Error.layout.type=PatternLayout
appender.Error.layout.pattern=${layoutPattern}
appender.Error.policies.type=Policies
appender.Error.policies.time.type=TimeBasedTriggeringPolicy
appender.Error.policies.time.interval=1
appender.Error.policies.time.modulate=true
appender.Error.policies.size.type=SizeBasedTriggeringPolicy
appender.Error.policies.size.size=20M
appender.Error.strategy.type=DefaultRolloverStrategy
appender.Error.strategy.max=100
# 过滤 error 以上信息,只输出 error 级别日志
appender.Error.filter.threshold.type=ThresholdFilter
appender.Error.filter.threshold.level=fatal
appender.Error.filter.threshold.onMatch=DENY
appender.Error.filter.threshold.onMisMatch=NEUTRAL
# ErrorRollingFile 日志级别
rootLogger.appenderRef.Error.level=error
rootLogger.appenderRef.Error.ref=ErrorRollingFile

如图:

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值