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>
网友评论