本系列第 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 布局语法速查

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐