Spring Boot Log4j2配置
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
如图:
还没有评论,来说两句吧...