需求: 日志打印如果全部按照info等级的话,用不了多久就占据了大量的空间,且大批数据在服务稳定后无意义,但随时重启服务器又会导致用户服务中断,因此需要根据情况动态开启日志warn打印和info打印。
设定当前服务已经运行于nacos框架的基础上,配置动态刷新。
一般的springboot默认配置是application.yml文件,如果想指定配置为application-prod.yml的话在服务启动时附带一段启动参数
代码语言:javascript复制 -Dspring.config.location=application-prod.yml
如果想要将配置传至nacos中,并动态刷新生效,首先加上maven依赖
代码语言:javascript复制<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
再在配置文件同级的位置加上一个bootstrap-prod.properties文件,内容如下:
代码语言:javascript复制spring.application.name=xxxxxxxx //服务名
spring.cloud.nacos.config.file-extension=yaml //配置文件名尾缀
spring.cloud.nacos.config.server-addr=xxxx.xxxxxxxxx.com:8848 //nacos地址
spring.cloud.nacos.config.group=qdchess //配置组名
然后新建一个文件夹,文件夹名为上面的配置组名,文件名为服务名,尾缀为上面配置的尾缀,然后打包压缩,上传至nacos中。
如果按照上面文件打包命名方式的话,在配置列表中就会正确弹出已上传的配置。这时候再以默认方式启动服务,服务就会从云端nacos中读取配置
在服务运行中对该配置文件进行修改后进行发布,服务会动态切换配置文件,至此,就满足了需求中类似动态修改loggin:level:root: warn 与info的需求,如需动态切换别的配置文件,如短信服务地址签名accessKeyId之类的,需要在引入类的位置再加上一个注解@RefreshScope。后即可动态生效配置。
详细配置文件源码读取原理后期会发布,此处仅记录并展示使用方法。
Post Views: 727