SpringBoot之logback-spring.xml详细配置
•
后端
《logback官网》


各种指导文件,有空自己去看,比如:我们需要调整的是布局,直接看Layouts。


pom.xml
dev
dev
true
test
test
prod
prod
需要注意的事项:
- SpringBoot默认的root级别是INFO,因此不需要DEBUG级别的日志,除非你想看SpringBoot的某些详细内容或者执行过程。
- 虽然可以通过配置文件配置生成日志输出到文件,但是即使你区分了环境,使用了某个环境并且只输出到控制台不输出到文件,还是会生成对应的日志文件。(只配置了输出到控制台,则不会生成文件)
- %L是一个转换符号,用于输出调用日志记录器的日志语句所在的代码行号。当使用%L时,会动态获取当前日志语句的代码行号,并将其作为日志消息的一部分进行输出。然而,使用%L会对性能产生一定的影响,尤其是在频繁记录大量日志消息的情况下。这是因为获取代码行号需要进行一些额外的操作,涉及到Java中的反射机制和堆栈跟踪的解析,这些操作会带来额外的开销。具体的性能影响取决于系统的复杂性、日志记录的频率和日志消息的大小。在性能敏感的生产环境中,建议在配置中避免使用%L,以减少不必要的性能损耗。你可以通过设置日志级别、打印线程名称等其他调试信息来辅助定位日志输出位置,而不必使用%L获取行号。总结起来,使用%L可以方便地输出代码行号,但会对性能产生一定的影响。在生产环境中,尽量避免频繁使用%L,以避免不必要的性能损耗。
简单配置
<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR
logback
debug
${CONSOLE_LOG_PATTERN}
UTF-8
${log.path}/log_info.log
${FILE_LOG_PATTERN}
UTF-8
${log.path}/info/log-info-%d{yyyy-MM-dd}.%i.log
10MB
30
50GB
info
ACCEPT
DENY
${log.path}/log_warn.log
${FILE_LOG_PATTERN}
UTF-8
${log.path}/warn/log-warn-%d{yyyy-MM-dd}.%i.log
100MB
30
20GB
warn
ACCEPT
DENY
${log.path}/log_error.log
${FILE_LOG_PATTERN}
UTF-8
${log.path}/error/log-error-%d{yyyy-MM-dd}.%i.log
10MB
30
50GB
ERROR
ACCEPT
DENY
多环境配置
把原来resources下的logback-spring.xml删除,新增logback文件夹和对应环境的logback xml配置文件

application.yml
spring:
application:
name: '@artifactId@'
profiles:
#环境
active: '@spring.profiles.active@'
logging:
config: classpath:logback/@spring.profiles.active@.xml
开发环境
application-dev.yml
logging:
level:
# 正式环境打印SQL日志(一般没什么问题不建议开启。)
com.fu.easycode.mapper: debug
生产环境
application-prod.yml
#按需配置
测试环境
application-test.yml
logging:
level:
# 正式环境打印SQL日志(一般没什么问题不建议开启。)
com.fu.easycode.mapper: debug
resources/logback/dev.xml
${CONSOLE_LOG_PATTERN}
resources/logback/prod.xml
${springApplicationName}
${path}/%d{yyyy-MM-dd}/%i.log
${totalSizeCap}
${maxHistory}
${maxFileSize}
${cleanHistoryOnStart}
${PATTERN_FILE}
resources/logback/test.xml
${springApplicationName}
${CONSOLE_LOG_PATTERN}
${path}/%d{yyyy-MM-dd}/%i.log
${totalSizeCap}
${maxHistory}
${maxFileSize}
${cleanHistoryOnStart}
${PATTERN_FILE}
总结
建议用第二种方式,虽然麻烦点,但是对不同环境,做了不同的区分。方便阅读。因为springProperty可以和application的配置一起使用,再application里配置了,就可以覆盖掉xml里的默认配置。
彩色日志格式

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://www.net2asp.com/e2d3881dee.html
