关于spring-boot中logback日志配置引用spring环境变量的使用方式

在使用spring-boot开发过程中,可以通过修改logback配置文件属性声明,就可以引用到spring环境变量,如application.properties中的变量

使用方式

  1. 修改spring-boot工程中的application.yaml配置文件(application.properties配置同理),来加载logback xml配置文件
logging:
  # 这里替换成你的logback配置文件名称
  config: classpath:logback-test.xml
  1. 修改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环境变量输出了

猜你喜欢

转载自blog.csdn.net/bobocqu/article/details/127627072