在使用spring-boot开发过程中,可以通过修改logback配置文件属性声明,就可以引用到spring环境变量,如application.properties中的变量,能方便的打印一些有帮助的信息,便于我们分析问题
官方文档说明:https://docs.spring.io/spring-boot/docs/2.4.5/reference/htmlsingle/#boot-features-logback-extensions
使用方式
- 修改spring-boot工程中的application.yaml配置文件(application.properties配置同理),来加载logback xml配置文件
logging:
# 这里替换成你的logback配置文件名称
config: classpath:logback-sbd.xml
- 修改logback的xml配置文件,使用
<springProperty>
标签来声明引用application.yaml中的哪个变量,声明后就可以在appender中使用变量了(类似<property>标签使用方式)
示例配置:https://github.com/netbuffer/spring-boot-demo/blob/logback/src/main/resources/logback-sbd.xml
<springProperty scope="context" name="appName" source="spring.application.name"/>
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<withJansi>true</withJansi>
<encoder>
<pattern>
${appName} %highlight(%date{yyyy-MM-dd HH:mm:ss.SSS}) %cyan([%thread]) %yellow(%-5level) %green(%logger{36}).%gray(%M)-%boldMagenta(%line) - %blue(%msg%n)
</pattern>
</encoder>
</appender>
运行效果
运行工程后可以看到${appName}
的插值已经被替换为spring.application.name
环境变量输出了
示例工程:https://github.com/netbuffer/spring-boot-demo/tree/logback