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

Spring-boot使用logback实现多环境配置_第1张图片

上图就是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}

测试代码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GBHrZXcq-1652081046802)(https://upload-images.jianshu.io/upload_images/15590149-bd4d6ccfd6ee7c43?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

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

因为不同的环境,我们配置成日志级别不一样,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实现多环境配置_第2张图片

Spring-boot使用logback实现多环境配置_第3张图片

logback-prod.xml配置

Spring-boot使用logback实现多环境配置_第4张图片

Spring-boot使用logback实现多环境配置_第5张图片

Spring-boot使用logback实现多环境配置_第6张图片

Spring-boot使用logback实现多环境配置_第7张图片

Spring-boot使用logback实现多环境配置_第8张图片

Spring-boot使用logback实现多环境配置_第9张图片

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mDWzkLD2-1652081046810)(https://upload-images.jianshu.io/upload_images/15590149-104493c7a4334fb9?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

启动指定spring.profiles.active=dev

在控制台输出了

而在日志文件

日志内容

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

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

${logLevel} ACCEPT DENY

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

启动指定spring.profiles.active=prod

控制台输出

日志文件

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

springProfile方案

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

logback-spring.xml配置Spring-boot使用logback实现多环境配置_第10张图片

这样就可以在同一个配置xml文件中,配置不同的环境值。

logback-spring.xml配置[外链图片转存中…(img-JXbSFYSE-1652081046813)]

这样就可以在同一个配置xml文件中,配置不同的环境值。

你可能感兴趣的:(Java,经验分享)