如何使用属性文件在log4j.xml中设置值?

4
我想知道是否可以使用属性文件在log4j.xml中设置属性。例如,log4j.xml文件:
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration>
 <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
    <param name="target" value="System.out" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{ISO8601} %-5p [%c{1}] - %l - %m%n "/>
    </layout>        
</appender>
   <appender name="FILE" class="org.apache.log4j.FileAppender">
<param name="File" value="\D:\ReadText_File\log4jlogss.txt"/>
<param name="Append" value="true"/>
         <layout class="org.apache.log4j.PatternLayout">
                    <param name="ConversionPattern" value="%d{ISO8601} %-5p [%c{1}]- %l - %m%n"/>
        </layout>
</appender>
<logger name="org.apache">
<level value="WARN"/>
</logger>
<root>
    <level value="DEBUG"/>
    <appender-ref ref="FILE"/>
    <appender-ref ref="CONSOLE"/>
    </root>
   </log4j:configuration>

我想使用属性文件指定文件路径,有什么方法吗?
2个回答

1
关于log4j,当前版本不支持嵌入属性文件的XML配置类型。
如需详细了解,请查看log4j源代码。XML解析细节在DOMConfigurator.configure类中。

我们在log4j.xml中也有一个properties标签,您能指导我如何为其定义查找吗? - Developer

1

您可以使用Log4j的LookupsPropertySubstitution

请参见http://logging.apache.org/log4j/2.x/manual/configuration.html#PropertySubstitutionhttp://logging.apache.org/log4j/2.x/manual/lookups.html

以下是StackOverflow上的示例:Log4J2 property substitution - default (简而言之,据我所知,您可以使用System Property使用-Dkey=value

您还可以尝试使用${bundle:com.package.Messages:MyKey}语法来使用属性文件(使用log4j 2.0-rc1或更高版本),请参见https://stackoverflow.com/a/19303208/1149528


是的,我已经了解了它,但是不知道如何在查找中设置属性?虽然有关如何使用它们的说明,但实际如何在其中设置属性是我的问题。任何指导都将不胜感激,谢谢您的回复! - Developer
这是一个例子:https://dev59.com/QGEh5IYBdhLWcg3wyF88 - xav

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接