码迷,mamicode.com
首页 > 其他好文 > 详细

使得“Log4J日志文件保存路径”可配置

时间:2016-05-07 08:36:05      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:

使用Log4J日志框架,可以配置将日志记录到文件中,示例配置如下:

log4j.appender.A1=org.apache.log4j.RollingFileAppender
log4j.appender.A1.Threshold=INFO
log4j.appender.A1.File=log/info.log
log4j.appender.A1.Append=true
log4j.appender.A1.Encoding=GBK
log4j.appender.A1.MaxFileSize=256MB
log4j.appender.A1.MaxBackupIndex=60
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%d{yy-MM-dd HH:mm:ss}], [%p] [%l] -%m%n

上述配置中日志文件的保存路径是:当前项目路径下“/log/info.log”。
有些应用场景中,日志文件的保存路径需要可配置。Log4J支持这种应用场景,具体是采用如下两种配置形式:
log4j.appender.A1.File=${LOGDIR}/log/info.loglog4j.appender.A1.File=${env:LOGDIR}/log/info.log

一、第一种形式

Log4J日志框架在加载的时候会使用相应的Java进程变量值去进行替换。比如说现在“LOGDIR”这个Java进程变量的值为“/home/dsl”,那么log4j.appender.A1.File=${LOGDIR}/log/info.log最后会被替换成“log4j.appender.A1.File=/home/dsl/log/info.log”。

二、第二种形式

Log4J日志框架在加载的时候会使用相应的系统环境变量值去进行替换。比如说现在“LOGDIR”这个系统环境变量的值为“/home/dsl”,那么log4j.appender.A1.File=${env:LOGDIR}/log/info.log最后会被替换成“log4j.appender.A1.File=/home/dsl/log/info.log”。
“Log4J 2.x”才支持第二种形式。其实“Log4J 2.x”不支持“Log4J 1.x”的“properties文件格式”的配置形式,而只支持“XML文件格式”的配置形式,示例如下:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
    <Appenders>
        <File name="MyFile" fileName="${env:LOGDIR}/logs/app.log">
            <PatternLayout>
                <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
            </PatternLayout>
        </File>
        <Async name="Async">
            <AppenderRef ref="MyFile"/>
        </Async>
    </Appenders>
    <Loggers>
        <Root level="error">
            <AppenderRef ref="Async"/>
        </Root>
    </Loggers>
</Configuration>



备注:
关于Java进程变量和系统环境变量可见“Java中System.getenv()和System.getProperties()的区别



参考文献:
[1]http://stackoverflow.com/questions/2975289/log4j-relative-file-path
[2]http://stackoverflow.com/questions/13066042/how-to-give-environmental-variable-path-for-file-appender-in-configuration-file
[3]https://logging.apache.org/log4j/2.x/manual/appenders.html

使得“Log4J日志文件保存路径”可配置

标签:

原文地址:http://blog.csdn.net/dslztx/article/details/51335131

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!