log4j配置获取系统属性及默认值

一、使用场景

  1.因某些原因,我们可能将log4j中的配置变量化,进行动态获取

  2.动态获取内容不存在时,我们希望能够赋上通用的值

二、语法

  • 单变量:

${前缀:变量:-默认值}

  如:

  ${sys:i2cc.base.dir:-/tmp/i2cc}/logs

  • 多个候选变量:

    ${前缀:变量:-${前缀:变量:-默认值}}

  如:

  ${sys:i2cc.base.dir:-${sys:i2cc.base:-/tmp/i2cc}}/logs

三、测试

  在idea Run/Debug Configurations中VM options中先后配置-Di2cc.base.dir=/tmp/a/ 和-Di2cc.base=/tmp/b/及不配置

  

1 public class FunctionTest {
2     private static final Logger logger = LogManager.getLogger(FunctionTest.class);
3     public static void main(String[] args){
4         logger.error("asdfasdf");
5     }
6 }
View Code

四、结果

  启动程序后,日志将分别写到

# -Di2cc.base.dir=/tmp/a/

/tmp/a/

# -Di2cc.base=/tmp/b/

/tmp/b/

# 不配置

/tmp/i2cc

转载于:https://www.cnblogs.com/kwing0117/p/11428842.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值