自动log4j配置和bundleresource

时间:2011-10-20 18:30:52

标签: eclipse logging configuration eclipse-plugin log4j

两个问题/问题:

1)在许多log4j线程/论坛/等中,我看到定义包含log4j配置文件引用的log4j.debug的结果,前缀为“file:”,如下所示:

log4j: Using URL [file:/data/app/conf/log4j.properties] for automatic log4j configuration.

在我正在更新的代码中(由其他开发人员现在在其他地方工作),我看到了:

log4j: Using URL [bundleresource://23/log4j.properties] for automatic log4j configuration

上面显示的“bundleresource”是什么/在哪里?我认为这是一个我无法识别的专用资源Eclipse插件。


2)这个问题源于一个更大的问题,即无法在没有明确地将其插入JVM的命令行参数(例如,-Dlog4j.configuration)的情况下加载log4j配置文件。我正在测试服务器上替换基于Eclipse插件的应用程序,该服务器没有在启动脚本中指定的此命令行参数,并且能够正确启动log4j正确初始化。当我使用源存储库中的最新版本替换此应用程序时,应用程序无法找到log4j配置文件。有关为什么第一个应用程序可以启动并找到log4j配置文件而第二个(较新的)应用程序无法启动的任何想法?

非常感谢任何帮助。

谢谢!



更新/修改

定义了log4j.debug的应用程序的输出:

log4j: Trying to find [log4j.xml] using context classloader sun.misc.Launcher$AppClassLoader@9fe666.
log4j: Trying to find [log4j.xml] using sun.misc.Launcher$AppClassLoader@9fe666 class loader.
log4j: Trying to find [log4j.xml] using ClassLoader.getSystemResource().
log4j: Trying to find [log4j.properties] using context classloader sun.misc.Launcher$AppClassLoader@9fe666.
log4j: Trying to find [log4j.properties] using sun.misc.Launcher$AppClassLoader@9fe666 class loader.
log4j: Trying to find [log4j.properties] using ClassLoader.getSystemResource().
log4j: Could not find resource: [null].

1 个答案:

答案 0 :(得分:1)

您可以先加载属性,然后将其扔到log4j的属性配置器中,为Log4j加载属性文件:

Properties props = new Properties();
FileInputStream fis = new FileInputStream("mylog4j.properties");
props.load(fis);
fis.close();
PropertyConfigurator.configure(props);

bundleresource看起来像库特定的东西。我建议在源代码上使用grep:

grep -irn ./ -e "bundleresource"