所以我们今天遇到了一个有趣的问题。我们有一个Java网络应用程序,它使用了一堆第三方的罐子。这包括Hibernate。
我们使用随SDK附带的Java日志api进行日志记录。通常,我们在日志记录方面非常薄弱,但是我们遇到了这个问题,我们使用log4j来创建自己的日志文件。它不仅从自己的代码中记录语句,甚至开始为hibernate代码编写调试,这导致批处理作业在短时间内记录了价值3GB的日志。
我对此有两个问题:
我想要第三方库记录错误。尽管如此,我认为这个第三方jar从它负责的包中记录调试结果有点尴尬。例如,在我的例子中,这个第三方jar正在记录Hibernate调试,尽管它甚至没有调用任何hibernate方法。我们运行的批处理作业甚至没有在这个jar中调用API。看起来,拥有自己的log4j配置覆盖其中的内容似乎是最好的方法。
发布于 2009-02-04 15:23:31
据我所知,您只需要在正在进行日志记录的JAR之前在类路径上提供您自己的log4j属性文件,然后将获取这个属性文件。回到内存的深处,Hibernate至少从其JAR的根中提取这一点,因此您不需要打包属性。
作为一个更广泛的问题,是的,我肯定希望我的库记录-否则,你怎么知道如果有什么问题,如果没有日志?
发布于 2009-02-04 15:23:01
如果它们使用的是log4j或另一个常用的日志框架,您可以通过在类路径中早先提供另一个lo4j.properties来覆盖它的配置。在我看来,第三方日志记录是一件好事,只要您可以轻松地配置您想要的日志记录级别,如果他们使用log4j,情况就是这样。配置日志系统来输出更少的信息总是比配置第三方代码来添加日志记录更容易!
https://stackoverflow.com/questions/511777
复制相似问题