您的位置:首页 > 其它

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

2017-03-02 10:48 1981 查看

Log4j2日志相对路径的配置

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

<Filename="log"fileName="log/test.log"append="false">
<PatternLayoutpattern="%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--读取的是systemproperties的属性,基本上这几个参数就够用了。

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

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


ok解决。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: