美文网首页
SpringBoot中logback区分不同环境配置不同日志级别

SpringBoot中logback区分不同环境配置不同日志级别

作者: 向上生长之路 | 来源:发表于2021-10-10 11:03 被阅读0次

    使用SpringBoot开发过程中,我们可能会遇到这样的场景:在开发环境下希望打印的日志多一点便于观察调用过程,在测试、生产等环境下只打印必要的日志信息,即根据不同环境能设置不同的日志级别,SpringBoot中提供了<springProfile>标签的使用,来帮助我们实现针对不同环境的配置。下面给大家演示下具体使用方式~

    • SpringBoot版本 2.4.5

    参考官方文档说明:https://docs.spring.io/spring-boot/docs/2.4.5/reference/htmlsingle/#profile-specific-configuration

    使用方式

    1.修改SpringBoot工程中的application.yaml配置文件(application.properties配置同理),来加载logback xml配置文件

    logging:
      # 这里替换成你的logback配置文件名称
      config: classpath:logback-sbd.xml
    

    2.修改logback的xml配置文件,使用<springProfile>标签来声明不同环境下的配置

    示例配置:https://github.com/netbuffer/spring-boot-demo/blob/logback/src/main/resources/logback-sbd.xml

        <!--针对dev环境下的日志配置-->
        <springProfile name="dev">
            <logger name="cn.netbuffer" level="DEBUG"/>
        </springProfile>
    
        <!--针对test环境下的日志配置-->
        <springProfile name="test">
            <logger name="cn.netbuffer" level="INFO"/>
        </springProfile>
    

    3.创建Controller层映射方法来观察日志输出情况
    示例代码:https://github.com/netbuffer/spring-boot-demo/blob/logback/src/main/java/cn/netbuffer/springboot/demo/controller/ParamController.java

        @GetMapping("log")
        public void log() {
            log.debug("debug level log");
            log.info("info level log");
        }
    

    4.修改application.yaml配置文件来设置SpringBoot启动环境

    spring:
      profiles:
        active: dev
    

    运行效果

    启动工程,通过Postman工具访问/param/log接口


    观察后台日志输出,发现debug、info级别日志均输出出来了

    再次修改启动环境参数,并重新启动工程
    spring:
      profiles:
        active: test
    

    访问/param/log接口,观察后台日志输出


    可以看到日志中只输出了info级别的日志,证明我们的配置均已经生效了~

    示例工程:https://github.com/netbuffer/spring-boot-demo/tree/logback

    相关文章

      网友评论

          本文标题:SpringBoot中logback区分不同环境配置不同日志级别

          本文链接:https://www.haomeiwen.com/subject/jqqtoltx.html