Logback 系列(5):配置文件详解 logback.xml vs logback-spring.xml
·
本系列第 5 篇。讲清楚该用哪个配置文件,以及怎么读取 Spring 配置、按环境切换。
logback.xml vs logback-spring.xml
| 文件 | 加载者 | 能否用 Spring 特性 |
|---|---|---|
logback.xml |
Logback 自己(早于 Spring 启动) | 否 |
logback-spring.xml |
Spring Boot | 能,支持 <springProperty>、<springProfile> |
结论:Spring Boot 项目一律用 logback-spring.xml,才能读取 application.yml 里的配置。
读取 yml 配置:springProperty
<springProperty name="logServers" source="spring.log-kafka.log-servers"/>
把 yml 里 spring.log-kafka.log-servers 的值绑定到变量 logServers,后面用 ${logServers} 引用。
自定义变量:property
<property name="LOG_HOME" value="./logs"/>
<!-- 引用:${LOG_HOME} -->
按环境切换:两种写法
写法一:<if> 条件(需要 janino 依赖)
<if condition='!property("appName").contains("prod")'>
<then> ...非生产... </then>
<else> ...生产... </else>
</if>
写法二:<springProfile>(推荐)
<springProfile name="prod">
<!-- 只有 prod 环境生效 -->
</springProfile>
<springProfile name="!prod">
<!-- 非 prod 环境生效 -->
</springProfile>
<springProfile> 是 Spring Boot 提供的,天然按 profile 切换、无需额外依赖,比 <if> 更直观,推荐优先使用。
上一篇:日志级别与继承
下一篇:Pattern 布局语法速查
更多推荐




所有评论(0)