美文网首页
log4j 读取系统环境变量

log4j 读取系统环境变量

作者: UUID | 来源:发表于2017-10-10 10:09 被阅读1213次

    最近项目需要使用log4j记录日志,log4fj.properties配置文件的片段如下:

    ### log file ###
    log4j.appender.debug=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.debug.File=${PIF_CONF}/logs/retrofit.log
    log4j.appender.debug.Append=true
    log4j.appender.debug.Threshold=INFO
    log4j.appender.debug.layout=org.apache.log4j.PatternLayout
    log4j.appender.debug.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} [%p]-[%c] %m%n
    

    ${PIF_CONF}就配置在/etc/profile文件中,但是测试了几次,根本就没有生效,根据网友的解决方案也没有解决。

    于是决定自己看log4j的源码org.apache.log4j.helpers.OptionConverter.java 文件,发现log4j 读取环境变量使用System.getProperty(),通过测试程序,发现System.getProperty("PIF_CONF") 为null,System.getenv("PIF_CONF") 确实获取到了PIF_CONF的内容。

    所以在spring context 初始化的时候采用System.getenv("PIF_CONF") +System.setProperty("PIF_CONF","XXXX")将PIF_CONF设置进props。这样,log4j就可以读取到log path了。

    相关文章

      网友评论

          本文标题:log4j 读取系统环境变量

          本文链接:https://www.haomeiwen.com/subject/zvtvyxtx.html