SpringMVC下logback配置环境分离

摘要

最近开发过程中,使用Spring Profiles进行了开发环境与测试环境的分离,由于开发环境和测试环境之间需要使用不同的配置,例如开发环境和测试环境的日志级别,日志文件存储的路径极有可能是不同的,所以需要将开发环境和测试环境分离开来,我们首先想到的可能是把logback.xml文件拷贝成两份,不同环境使用不同的logback.xml文件不就可以了吗?其实这样是有问题的,一个是两个logback.xml文件进行管理是很头疼的,另一个很重要的问题是logback.xml文件会在web.xml文件里面配置,而web.xml文件很难去判断读取哪一个logback.xml文件。

解决方案

我们使用logback的一个特性,它提供<property resource=''>来读取我们的配置文件,我们只需要在resource里面配置好我们对应logback.properties的文件路径就可以了,例如这些:

<property resource="properties/${spring.profiles.active}/logback.properties"/>

这样我们直接使用${spring.profiles.active}来获取对应环境的目录就可以了,非常方便。

实现代码

具体的实现代码如下:

  • logback.xml基础配置:
    下面这段配置中主要配置的含义可以通过查看logback文档去了解,不做过多的阐述,有两个地方可以相应了解下,一个是日志写入文件时,会同时按照日期和最大文件大小生存新文件,另一个是statusListener和debug=’false’可以不打印logback自身的日志信息。除了${spring.profiles.active},其他的${}包裹的变量都是从logback.properties文件中进行读取的,所以我们需要在开发环境和生产环境分别定义一套logback.properties文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<configuration scan="true" debug="false">
    <property resource="properties/${spring.profiles.active}/logback.properties"/>
    <!-- 清除logback状态日志  -->
    <statusListener class="ch.qos.logback.core.status.NopStatusListener" />
    
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值