文章目录
前言
在logback中实现不同环境的配置进行区分,市面上有两种方案,下面会针对两种方案进行介绍和本次改造采用方案考虑
1.利用spring的环境变量配置:
使用springProfile和springProperty实现多环境的灵活配置
本次改造日志保存天数使用:
<!-- 日志存储天数 -->
<property name="maxHistory" value="7"/>
<!--生产的时候保存30天-->
<springProfile name="prod">
<property name="maxHistory" value="30"/>
</springProfile>
日志appender进行配置的时候使用maxHistory进行传递:
<maxHistory>${maxHistory}</maxHistory>
2.引入第三方依赖进行流程语句if控制:
<dependency>
<groupId>org.codehaus.janino</groupId>
<artifactId>janino</artifactId>
<version>3.0.6</version>
</dependency>
举例子:
application.properties
deploy.env=local
<springProperty scope="context" name="env" source="deploy.env"/>
<root level="INFO">
<appender-ref ref="FILE"/>
<if condition='property("env").contains("local")'>
<then>
<!-- this only enable in local -->
<appender-ref ref="STDOUT"/>
</then>
</if>
</root>
3.总结:
采用springProfile避免增加第三方依赖增加项目复杂度,是一个比较好的选择的方案,并且这个方案在生产环境中被大量采纳和实践,是一个比较靠谱的方案,当然这个只是针对简单的一些流程的判断,如果是涉及到比较复杂的流程控制的话需要进行引入第三发的依赖进行处理。