转自:https://blog.csdn.net/ancongxie6976/article/details/101326474
一、使用场景
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 }
四、结果
启动程序后,日志将分别写到
# -Di2cc.base.dir=/tmp/a/ /tmp/a/ # -Di2cc.base=/tmp/b/ /tmp/b/ # 不配置 /tmp/i2cc
标签:tmp,i2cc,base,Di2cc,默认值,log4j,dir,属性 From: https://www.cnblogs.com/fnlingnzb-learner/p/16895844.html