美文网首页
Spring Boot 特性(三)Profiles&Loggin

Spring Boot 特性(三)Profiles&Loggin

作者: 镏金糖豆 | 来源:发表于2020-05-21 21:29 被阅读0次

    Profiles

    官方文档地址Logging

    在特性(二)中已经提过了,利用profile可以做对不同环境的定制化配置。
    基于配置文件,在配置上有两种玩法:

    #指定激活哪个profile配置
    spring.profiles.active: prod
    ......
    #指定包含哪些profile文件
    spring.profiles.include:
      - proddb
      - prodmq
    

    基于bean可以通过@Profile设置条件激活

    /**
      *只有在 production 被激活才生效
      *当然 @Component, @ConfigurationProperties 也可以使用Profile注解
      **/
    @Configuration()
    @Profile("production")
    public class ProductionConfiguration {
    
        // ...
    
    }
    

    这个特性简单易懂,网上文章一搜一大把,就不多说了。

    Logging

    官方文档地址Logging

    默认情况下Spring boot使用Logback记录日志
    默认情况下Spring boot不会输出日志到文件。具体配置方法请参看原文档。
    默认情况下Spring boot日志级别为INFO。
    关于日志级别,日志输出格式,日志输出方式,等基础日志配置方法不在赘述了,可以直接查看原文档。

    关于日志组

    Spring boot可以定义日志组,把几个包下面的日志关联到一个组统一管理。
    例如,如果想统一管理tomcat日志,可以这样做

    logging.group.tomcat=org.apache.catalina, org.apache.coyote, org.apache.tomcat
    #通过上面的配置,一行配置就可以更改整个组的日志级别
    logging.level.tomcat=TRACE
    
    

    Spring Boot提供了以下默认分组:

    Name Loggers
    web org.springframework.core.codec, org.springframework.http, org.springframework.web, org.springframework.boot.actuate.endpoint.web, org.springframework.boot.web.servlet.ServletContextInitializerBeans
    sql org.springframework.jdbc.core, org.hibernate.SQL, org.jooq.tools.LoggerListener

    有了分组再也不用在配置中看到一大堆日志级别配置了

    关于定制化配置

    SpringBoot支持使用其他日志工具记录日志,鉴于Logback本身足够优秀且SpringBoot对其支持的够好,本文不介绍如何定制化,有需求请参看原文。

    针对Logback的扩展配置

    使用logback-spring.xml作为配置文件,而不是logback.xml,这样才能获得SpringBoot的扩展支持。
    tag <springProfile>支持按profile条件配置

    <springProfile name="staging">
        <!-- configuration to be enabled when the "staging" profile is active -->
    </springProfile>
    

    tag <springProperty> 支持引用spring environment中的配置

    <springProperty  name="fluentHost" source="myapp.fluentd.host"
            defaultValue="localhost"/>
    <appender name="FLUENT" class="ch.qos.logback.more.appenders.DataFluentAppender">
        <!-- 可以直接使用${}获取属性值 -->
        <remoteHost>${fluentHost}</remoteHost>
        ...
    </appender>
    

    相关文章

      网友评论

          本文标题:Spring Boot 特性(三)Profiles&Loggin

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