将log4j.properties转换为log4j.xml

时间:2011-09-14 10:17:20

标签: java logging configuration log4j

我无法在任何地方找到如何在log4j.xml中指定常量。例如,我在log4j.properties中有这个常量:

#Log directory
dal.log.dir=/var/log/pojodal/
# Log filename
dal.log.file=pojodal.log

我在属性文件的其他部分使用以下常量:

log4j.appender.DRFA1.File=${dal.log.dir}/${dal.log.file}

如何在log4j.xml中实现相同的行为?

2 个答案:

答案 0 :(得分:7)

您可以转换完整 log4j.properties 使用此在线服务,您可以粘贴log4j.properties,按转换并复制新{ {1}}:

http://log4j-props2xml.appspot.com/

如果该webapp处于脱机状态......您也可以在自己的servlet容器中启动它...您可以在此处找到下载和来源:

https://github.com/jroyals/log4j-properties-converter/

log4j.xml中使用变量:

使用 XML内部实体 answer并使用 Java系统属性question到另一个here ...中对此进行了解释> here

答案 1 :(得分:2)

您可以将日志文件位置和名称设置为log4J xml

中的参数元素
<param name="File" value="C:\\logs\\application\\ApplicationLog.log" />

以下示例文件:

<log4j:configuration>
    <appender name="STDOUT" class="org.apache.log4j.RollingFileAppender">
        <param name="File"     value="C:\\logs\\application\\ApplicationLog.${user.name}.log" />
        <param name="MaxFileSize" value="5000KB" />
        <param name="MaxBackupIndex" value="10" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern"
        value="[%d{yyyy-MMM-dd HH:mm:ss}] [%t] %-5p %c{1}: %m %n" />
        </layout>
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMin" value="DEBUG"/>
            <param name="LevelMax" value="FATAL"/>
        </filter>
    </appender>

    <root>
        <level value="all" />
        <appender-ref ref="STDOUT"/>
    </root>
</log4j:configuration>