2012-01-09 56 views
2

我想问你一个关于记录提供的罐子的问题。 我有许多依赖关系的maven应用程序,我需要使用logback进行登录。我在jboss 5.1上工作。日志记录由项目内部记录器提供的罐子

几乎所有的工作都很好。我可以使用logback.xml文件和足够的appender等来记录我的数据包中的所有操作。:) 有一个问题 - 我无法使用logback记录org.hibernate操作。它似乎通过在jboss中使用log4j来记录自身(jboss-log4j.xml配置它)。 在我的pom.xml中,我提供了org.hibernate,它自然是由jboss提供的。

<dependency> 
<groupId>org.hibernate</groupId> 
     <artifactId>hibernate-core</artifactId> 
     <version>3.3.1.GA</version> 
     <scope>provided</scope> 
</dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-annotations</artifactId> 
     <version>3.4.0.GA</version> 
     <scope>provided</scope> 
</dependency> 

段从logback.xml

<logger name="org.hibernate" level="TRACE" additivity="false"> 
    <appender-ref ref="SQL_FILE" /> 
</logger> 

当我删除

<scope>provided</scope> 

从pom.xml的启动项目配置中使用logback.xml登录。我会这样做,但我必须使用提供的罐子而不是我自己的罐子。

有没有可能通过使用项目内配置来记录提供的罐子?或者我注定要在jboss目录中使用log4j配置?

回答

1

据我所知,你不能改变JBoss打包的Hibernate的日志配置。这个Hibernate类是在应用程序之间共享的,它的日志sybsystem在应用程序部署之前已经被初始化。删除<provided>作用域Hibernate成为应用程序部署的一部分,并在应用程序启动时进行初始化。在这种情况下,您可以重新配置日志记录。 Hibernate使用slf4j记录器,look around如何配置。