自定义位置中的Log4j属性

Azd*_*der 14 java log4j properties propertyconfigurator

我正在使用Apache Commons Logging和SLF4J和log4j,但我也想在conf/log4.properties这样的自定义位置使用log4j.properties.这是问题所在:

如果我使用

  PropertyConfigurator.configure("conf/log4j.properties");
Run Code Online (Sandbox Code Playgroud)

然后我的应用程序绑定到log4j并且失败了拥有ACL和SLF4J的目的.

如果没有应用程序知道日志记录实现是什么,配置它的最佳方法是什么?

kdg*_*ory 26

我认为最简单的方法是使用log4j.configuration系统属性指定文件的位置.采用Log4J手册中的示例:

java -Dlog4j.configuration=conf/log4j.properties -classpath ...
Run Code Online (Sandbox Code Playgroud)

我相信Log4J会在类路径的任何地方找到一个名为"log4j.properties"的文件,但可能会产生幻觉.但值得一试.

  • 实际上,我遇到了与OP相同的问题,但你的解决方案并不适用于我.我必须以URL样式表单指定log4j.properties文件的位置(-Dlog4j.configuration = file:///my/conf/log4j.properties). (9认同)