logback日志天数控制方案设计

文章目录

前言

在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避免增加第三方依赖增加项目复杂度,是一个比较好的选择的方案,并且这个方案在生产环境中被大量采纳和实践,是一个比较靠谱的方案,当然这个只是针对简单的一些流程的判断,如果是涉及到比较复杂的流程控制的话需要进行引入第三发的依赖进行处理。

上一篇:c# 枚举安卓系统中所有目录及文件名


下一篇:【Android端】【日志收集上报SDK相关内容测试的方案梳理总结】