1

我一直在尝试整理我的项目中的日志记录,这很令人沮丧。特别是,我们使用的第 3 方库之一有一个类 ,com.foo.bar.baz.java它忽略了包的属性文件中的任何配置com.foo.bar,而是遵循应用程序范围的属性。

最终%c在模式布局中使用时,我了解到 Log4J 将其记录为Windows而不是其包。

这可能是什么原因造成的?它被证明非常适合谷歌。

4

2 回答 2

2

不要忘记,虽然使用类的完全限定名是通常的约定,但这不是必需的!

作者完全可以随意使用他们想要的任何字符串作为 Logger 名称,在这种情况下,他们似乎选择了基于组件的名称。

于 2010-09-21T18:31:16.337 回答
1

可能有很多事情导致它。您可以发布您的日志配置文件吗?你有一个gui项目吗?您(或第 3 方库)是否正在尝试登录 gui 组件?

您是否能够查看您的 3rd 方库的 log4j 配置文件?


为了解决您关于可能导致此问题的问题,从表面上看,他们似乎创建了一个自定义日志记录实现来覆盖您的设置。有很多方法可以实现这一目标。

例如,我们的应用程序在 Tomcat 上运行,并且<logging>server-config.xml 文件中有一个部分允许为服务器指定自定义日志记录目标。

作为另一个例子,我已经被流氓文件咬了几十次,commons-logging.properties这些文件可以改变所有日志记录的整个功能,应用程序范围内,只需修改一些属性。此外,这些文件指定了一个优先级标志,如果在类路径中发现任何属性文件的优先级高于项目中的优先级,则优先!


总的来说,这里有很多潜在的问题。为了提供更多帮助,我需要更多信息。

于 2010-09-11T03:31:22.390 回答