在springboot项目中我们可能想要实现不同环境的日志项目配置不同,比如我想让不同环境的日志路径不同。

这时候我们很容易想:

1、到将日志路径配置在springboot的:application-dev.yml,application-prod.yml,application-test.yml配置文件中,

2、再在logback.xml或者logback-spring.xml中使用 "${}"来引用配置值,比如我的日志输出目录在不同环境配置文件的配置如下:

开发环境配置文件application-dev.yml:

path:
    log: C:/logs-reptile-dev

测试环境配置文件application-test.yml:

path:
    log: C:/logs-reptile-test

 生产环境配置文件application-prod.yml:

path:
    log: C:/logs-reptile-prod

在 logback-spring.xml中配置引用如下:

<property name="log.path" value="${path.log}"/>

但是很遗憾这样并读不到我们配置的值,这时候我们需要通过springProperty标签来引用,例入我的:

<springProperty scope="context" name="log.path" source="path.log"/>

这里的name和上面property标签一样不多说,source其实就是上面的value啦,只不过要注意:千万不要加${}

如果还是读取不到,请把你的logback.xml配置文件名,改为:logback-spring.xml就可以啦

至于为什么要这么做,就是因为logback.xml的加载顺序早于springboot的application.yml配置文件当然读不到application.yml文件中的值了。想了解更多自行百度吧。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐