在使用spring-boot开发过程中,可以通过修改logback配置文件属性声明,就可以引用到spring环境变量,如application.properties中的变量
使用方式
- 修改spring-boot工程中的application.yaml配置文件(application.properties配置同理),来加载logback xml配置文件
logging:
# 这里替换成你的logback配置文件名称
config: classpath:logback-test.xml
- 修改logback的xml配置文件,使用
<springProperty>
标签来声明引用application.yaml中的哪个变量,声明后就可以在appender中使用变量了(类似<property>标签使用方式)
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="5 minutes">
<springProperty scope="context" name="rootLogLevel" source="logging.level.root"/>
<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>
<!--针对dev环境下的日志配置-->
<springProfile name="dev">
<logger name="cn.netbuffer" level="DEBUG"/>
</springProfile>
<!--针对test环境下的日志配置-->
<springProfile name="test">
<logger name="cn.netbuffer" level="INFO"/>
</springProfile>
<logger name="org.springframework.web" level="INFO"/>
<logger name="org.springframework.transaction" level="TRACE"/>
<logger name="org.springframework" level="WARN"/>
<root>
<level value="${rootLogLevel}"/>
<appender-ref ref="stdout"/>
</root>
</configuration>
运行效果
运行工程后可以看到${appName}
的插值已经被替换为spring.application.name
环境变量输出了