log4j2如何读取环境变量(配置日志相对路径时用到了)

Log4j2日志相对路径的配置

之前项目中日志的路径配置都是使用如下配置:

 <File name="log" fileName="log/test.log" append="false">
        <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
  </File>

 
该配置的日志文档会存档当运行程序的顶层路径(如:C:或者D:),我需要配置相对路径到运行程序路径下的logs文件中。网上查了一下两个解决方法,大家给方法都是:http://blog.csdn.net/whoopee/article/details/851416 一样的,但是我用的是log4j2的非web项目,尝试了几次读取环境变量,不正确全是配置的字符串或赋值不正确。最后没有办法,只能查看官方文档,下面给出官方文档的变量取值表:

发现log4j2确实有自己读取变量的规则,简单介绍一下常用的几个 date -- 可以按照特定的格式插入当前日期/时间  env--可以读取系统的环境变量   jvmrunargs -- 可以读取jvm启动时设定的运行参数,但是不能读main函数的参数,在Android系统上也不能用  sys -- 读取的是 system properties的属性,基本上这几个参数就够用了。

现在说一下解决日志相对路径的配置解决方法, 可以在启动选项的的option.bat批文件中 set MYAPP_HOME = %~dp0 (设置当前目录为根目录),然后在log4j2.xml 文件中引用变量即可:

  <File name="log" fileName="${env:MYAPP_HOME}/log/test.log" append="false">
        <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
  </File>


ok解决。

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值