【发布时间】:2009-02-04 15:16:05
【问题描述】:
所以我们今天遇到了一个有趣的问题。我们有一个使用一堆 3rd 方 jar 的 Java EE Web 应用程序。这包括休眠。
我们使用 SDK 附带的 Java 日志记录 API 进行日志记录。通常,我们在日志记录方面非常薄弱,但我们使用 log4j 创建它自己的日志文件的第 3 方 jar 之一遇到了这个问题。它不仅从自己的代码中记录语句,甚至开始为休眠代码编写调试,从而导致批处理作业立即记录 3 GB 的日志。
我有两个问题:
- 我需要解决这个日志记录问题(如果可能的话,我不希望拉出或修改第 3 方 jar 中的 log4j 配置)。除了修改或拉出第 3 方 jar 中的 log4j 配置,或者通过我自己的 log4j 配置覆盖第 3 方 jar 中的配置之外,是否还有一种好方法可以做到这一点?我不喜欢这两个选项中的任何一个,但我想做最好的事情。
- 我想问一下,期望第 3 方库愉快地注销是否符合规定?我认为这是一个糟糕的设计。我想征求社区对此的意见。
我希望第 3 方库记录错误。话虽如此,我认为这个第 3 方 jar 从它负责的包以外的包中记录 DEBUG 有点尴尬。例如就我而言,这个第 3 方 jar 正在记录 Hibernate 调试,即使它甚至没有调用任何休眠方法。我们运行的批处理作业甚至没有调用这个 jar 中的 API。看起来让我自己的 log4j 配置覆盖其中的内容似乎是最好的方法。
【问题讨论】: