日期:2014-05-17  浏览次数:20706 次

hibernate4.3.0中使用log4j时关于jar包取舍的问题

上面部分是hibernate-release-4.3.0.Final\lib\required里面的所有jar包,下面3个是与log4j配置相关的jar包。
查了下资料slf4j有好多具体实现:slf4j nodep, log4j, jdk logging api, apache commons-logging等。
jboss-logging-3.1.3.GA包基于java.util.logging包(我认为就是jdk logging api )实现。所以我认为log4j应该和jboss-logging-3.1.3.GA应该是处于同一级别不同实现方式的jar包,照这样想,在hibernate用log4j,如果添加了log4j-1.2.17.jar包,则应该可以去掉jboss-logging-3.1.3.GA包,但是去掉之后就出错。谁能帮我理清一下思路,谢谢。

------解决方案--------------------
引用:
Quote: 引用:

>>> 所以我认为log4j应该和jboss-logging-3.1.3.GA应该是处于同一级别不同实现方式的jar包,照这样想,在hibernate用log4j,如果添加了log4j-1.2.17.jar包,则应该可以去掉jboss-logging-3.1.3.GA包,但是去掉之后就出错。谁能帮我理清一下思路

jboss-logging本身就包括log4j,它设计的主要目的是兼容所有常见的日志FrameWork,例如log4j,common logging,slf4j等,如果您的应用是部署到JBoss的,则这些包没有必要打在应用中


也就是说jboss-logging的范围大于log4j,所以不能被取代。又因为jboss-logging是hibernate框架必须加入的包,所以jbos-logging必不可少。是这样的意思吧?

是的,不能够被取代。你可以使用Maven管理依赖,Maven会自动给您添加依赖,可以省的你手动添加