Spring boot使用logback实现多环境配置

注意:

1、当**公共配置文件application.yml和dev.yml(或prod.yml)**同时存在同一个配置的时候,以dev.yml(prod.yml)配置文件为主

2、当配置项只在公共application.yml文件中有的时候,以公共配置为主

3、可以把公共配置项放到application.yml中

我们在看dev.xml和prod.xml配置文件

dev.xml配置


#dev.xml中的配置,用户开发环境

log: 

  path: /Users/gujiachun/Downloads

  level: debug

prod.xml配置


#prod.xml中的配置,用户生产环境

log: 

  path: /Users/gujiachun/Downloads

  level: info

此方案的设计原理就是,不同环境不同的配置值;然后在logback-spring.xml中使用此配置值。

Spring boot使用logback实现多环境配置

上图就是logback-spring.xml配置,里面有个重要的就是springProperty标签,可以利用这个标签引用到application.yml中的值(包含dev.xml、prod.xml);log.level和log.path的值就可以在logback-spring.xml中使用,使用方式 l o g P a t h 、 {logPath}、 logPath{logLevel}

测试代码

Spring boot使用logback实现多环境配置

启动测试,指定spring.profiles.active=dev或prod;我们发现在logPath目录出现对应的日志文件

Spring boot使用logback实现多环境配置

因为不同的环境,我们配置成日志级别不一样,dev对应debug,prod对应info;日志文件内容不同环境对应不同内容

dev环境输出


2020-01-04 10:01:50,298 -- debug...

2020-01-04 10:01:50,298 -- info...

2020-01-04 10:01:50,298 -- error...

prod环境输出


2020-01-04 10:03:55,198 -- info...

2020-01-04 10:03:55,198 -- error...

外部配置文件方案

========

另一种更简单的方式,可以利用logging.config指定配置文件,而且有一个好处可以不一定要取名logback-spring.xml;我们来看一下

application-dev.xml环境


#日志相关配置

logging:

  config: classpath:conf/logback-dev.xml

application-prod环境


#日志相关配置

logging:

  config: classpath:conf/logback-prd.xml

logback-dev.xml配置

Spring boot使用logback实现多环境配置

Spring boot使用logback实现多环境配置

logback-prod.xml配置

Spring boot使用logback实现多环境配置

Spring boot使用logback实现多环境配置

Spring boot使用logback实现多环境配置

Spring boot使用logback实现多环境配置

Spring boot使用logback实现多环境配置

Spring boot使用logback实现多环境配置

Spring boot使用logback实现多环境配置

启动指定spring.profiles.active=dev

在控制台输出了

Spring boot使用logback实现多环境配置

而在日志文件

Spring boot使用logback实现多环境配置

日志内容


2020-01-04 11:56:10  [39mDEBUG[0;39m 7454  --- [main]  [36mc.r.g.t.LoggerTest[0;39m : debug:.... 

为什么只有debug日志,没有info、error;这个是因为日志文件中加了个过滤器


<filter class="ch.qos.logback.classic.filter.LevelFilter">

    <level>${logLevel}</level>

    <onMatch>ACCEPT</onMatch>

    <onMismatch>DENY</onMismatch>

</filter>

此过滤器中的属性onMatch和onMismatch,匹配日志级别就接受,不匹配就不接受。所以只接受debug级别。

启动指定spring.profiles.active=prod

控制台输出

Spring boot使用logback实现多环境配置

日志文件

Spring boot使用logback实现多环境配置

生成了4个文件,也是因为过滤器,生产环境的日志级别为info,所以debug日志文件里面为空。

springProfile方案

===============

springProfile标签在logback.xml中可以起到区分不同环境分支;如果我们需要配置不同环境,不同的输出方式,如:dev环境输出到控制台以及文件,prod环境只要输出到文件。

logback-spring.xml配置

Spring boot使用logback实现多环境配置

最后

毕竟工作也这么久了 ,除了途虎一轮,也七七八八面试了不少大厂,像阿里、饿了么、美团、滴滴这些面试过程就不一一写在这篇文章上了。我会整理一份详细的面试过程及大家想知道的一些问题细节

美团面试经验

美团面试
字节面试经验
字节面试
菜鸟面试经验
菜鸟面试
蚂蚁金服面试经验
蚂蚁金服
唯品会面试经验
唯品会

因篇幅有限,图文无法详细发出
程就不一一写在这篇文章上了。我会整理一份详细的面试过程及大家想知道的一些问题细节

美团面试经验

[外链图片转存中…(img-sZLd3ju6-1718717559329)]
字节面试经验
[外链图片转存中…(img-lXHRN8WZ-1718717559329)]
菜鸟面试经验
[外链图片转存中…(img-FaHYUwSU-1718717559330)]
蚂蚁金服面试经验
[外链图片转存中…(img-3Hs0fUV5-1718717559331)]
唯品会面试经验
[外链图片转存中…(img-oMo8PHju-1718717559331)]

因篇幅有限,图文无法详细发出

  • 14
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值