我一直在尝试整理我的项目中的日志记录,这很令人沮丧。特别是,我们使用的第 3 方库之一有一个类 ,com.foo.bar.baz.java
它忽略了包的属性文件中的任何配置com.foo.bar
,而是遵循应用程序范围的属性。
最终%c
在模式布局中使用时,我了解到 Log4J 将其记录为Windows
而不是其包。
这可能是什么原因造成的?它被证明非常适合谷歌。
我一直在尝试整理我的项目中的日志记录,这很令人沮丧。特别是,我们使用的第 3 方库之一有一个类 ,com.foo.bar.baz.java
它忽略了包的属性文件中的任何配置com.foo.bar
,而是遵循应用程序范围的属性。
最终%c
在模式布局中使用时,我了解到 Log4J 将其记录为Windows
而不是其包。
这可能是什么原因造成的?它被证明非常适合谷歌。
不要忘记,虽然使用类的完全限定名是通常的约定,但这不是必需的!
作者完全可以随意使用他们想要的任何字符串作为 Logger 名称,在这种情况下,他们似乎选择了基于组件的名称。
可能有很多事情导致它。您可以发布您的日志配置文件吗?你有一个gui项目吗?您(或第 3 方库)是否正在尝试登录 gui 组件?
您是否能够查看您的 3rd 方库的 log4j 配置文件?
例如,我们的应用程序在 Tomcat 上运行,并且<logging>
server-config.xml 文件中有一个部分允许为服务器指定自定义日志记录目标。
作为另一个例子,我已经被流氓文件咬了几十次,commons-logging.properties
这些文件可以改变所有日志记录的整个功能,应用程序范围内,只需修改一些属性。此外,这些文件指定了一个优先级标志,如果在类路径中发现任何属性文件的优先级高于项目中的优先级,则优先!