我想在log4j.xml文件中使用.properties文件中的值 实际上想在log4j.xml文件中设置参数值;
就像Spring中有一些PropertyPlaceholderConfigurer 我可以在log4j.xml中使用什么? 任何形式的指导或建议都是值得赞赏的 谢谢!
答案 0 :(得分:0)
我知道这个问题很老,但希望有人绊倒这个问题,发现以下内容很有用。 Log4j支持属性替换,因此您可以使用存储在log4j XML配置文件中的属性或ini文件中的值。请参阅Apache documentation的前缀部分。
我使用.ini文件执行了属性替换。您也应该可以使用.properties文件轻松完成相同的操作。以下是使用properties / ini值动态设置日志文件路径的方法:
//for an .ini file using org.ini4j.Wini
ini = new Wini(new File(args[0]));
System.setProperty("log_dir", ini.get("yourSubHeader", "yourPropertyName"));
//for a .properties file
prop.load(input); //using a FileInputStream
System.setProperty("log_dir", prop.getProperty("yourPropertyName"));
设置系统属性后,可以使用sys前缀通过以下内容在XML配置文件中检索此值:
<Properties>
<Property name="log-path" >${sys:log_dir}</Property>
<!-- other properties here -->
</Properties>
希望这对任何想知道同样问题的人都有帮助。