我一直在努力解决项目中的日志问题。特别是,我们使用的第三方库之一有一个类com.foo.bar.baz.java
,它忽略了com.foo.bar
包的属性文件中的任何配置,而是遵循应用程序范围的属性。
最终在模式布局中使用%c
我了解到Log4J将其记录为Windows
而不是其包。
可能导致这种情况的原因是什么?它证明了非常适合谷歌。
答案 0 :(得分:2)
不要忘记虽然使用类的完全限定名称是通常的惯例,但这不是必需的!
作者可以随意使用他们想要的任何字符串作为Logger名称,听起来好像在这种情况下,他们已经选择了基于组件的名称。
答案 1 :(得分:1)
可能会有很多事情导致它。你可以发布你的日志配置文件吗?你有gui项目吗?您(或第三方库)是否尝试登录gui组件?
您是否可以查看第三方库的log4j配置文件?
<小时/> 为了解决您可能导致此问题的问题,从表面上看,听起来他们创建了一个覆盖您设置的自定义日志记录实现。有很多方法可以实现这一目标。
例如,我们的工作应用程序在Tomcat上运行,server-config.xml文件中有一个<logging>
部分,允许用户为服务器指定自定义日志记录目标。
作为另一个例子,我被流氓commons-logging.properties
文件咬了几十次,这些文件可以通过修改一些属性来改变应用程序范围内所有日志记录的整个功能。此外,这些文件指定了一个优先级标志,如果在类路径中找到任何属性文件,其优先级高于项目中的优先级,则优先级高!
<小时/> 总的来说,这里存在很多潜在的问题。为了获得更多帮助,我需要更多信息。