【发布时间】:2010-07-30 18:35:55
【问题描述】:
我们将 Log4j 1.2.15 与我们的普通 Swing 应用程序捆绑在一起,并在启动时从文件系统加载我们自己的属性文件:
import org.apache.log4j.*;
...
System.setProperty("log4j.defaultInitOverride", "true");
...
File log4jPropertiesFile = ...
PropertyConfigurator.configure(log4jPropertiesFile.getAbsolutePath());
...
在我们从客户那里获得的日志中,输出看起来不像我们在属性文件中定义的那样,我们确信只有极少数人自己编辑了文件。
如果用户机器上的某个地方有另一个可用的配置文件,Log4j 会以某种方式覆盖我们的设置吗?我们如何防止使用它?
【问题讨论】:
-
你确定有一个 PropertyConfigurator.configure(File file) 方法吗? Log4j 1.2.16 API 中没有 ...
-
@PeterMmm:在注意到您的评论之前,我也偶然发现了这种差异。我查看的文档是针对 1.2.16 的,所以它离 OP 不远,不应该看到如此剧烈的 API 更改。有什么不对劲;我向 OP 寻求解释。
-
你们俩都是对的,我上面的代码示例是错误的。我们使用的是绝对文件路径,而不是文件实例。我已经更正了。