Java Hibernate:如何调整默认日志记录级别(SJF4J和JDK1.4记录器)?
我有一个JavaSE/Hibernate测试应用程序(基于shell)。我将以下JAR放入项目的lib dir中:Java Hibernate:如何调整默认日志记录级别(SJF4J和JDK1.4记录器)?,java,hibernate,logging,slf4j,java.util.logging,Java,Hibernate,Logging,Slf4j,Java.util.logging,我有一个JavaSE/Hibernate测试应用程序(基于shell)。我将以下JAR放入项目的lib dir中: antlr-2.7.6.jar commons-collections-3.1.jar commons-lang-2.5.jar dom4j-1.6.1.jar hibernate-jpa-2.0-api-1.0.0.Final.jar hibernate3.jar javassist-3.12.0.GA.jar jta-1.1.jar slf4j-api-1.6.1.jar sl
antlr-2.7.6.jar
commons-collections-3.1.jar
commons-lang-2.5.jar
dom4j-1.6.1.jar
hibernate-jpa-2.0-api-1.0.0.Final.jar
hibernate3.jar
javassist-3.12.0.GA.jar
jta-1.1.jar
slf4j-api-1.6.1.jar
slf4j-jdk14-1.6.1.jar
如您所见,我将SLF4J与JDK1.4记录器一起使用。当我从shell运行测试应用程序时,Hibernate非常冗长,因为它默认设置为信息级别:
09.12.2010 02:23:14 org.hibernate.annotations.common.Version <clinit>
INFO: Hibernate Commons Annotations 3.2.0.Final
09.12.2010 02:23:14 org.hibernate.cfg.Environment <clinit>
INFO: Hibernate 3.6.0.Final
09.12.2010 02:23:14 org.hibernate.cfg.Environment <clinit>
INFO: hibernate.properties not found
09.12.2010 02:23:14 org.hibernate.cfg.Environment buildBytecodeProvider
INFO: Bytecode provider name : javassist
09.12.2010 02:23:14 org.hibernate.cfg.Environment <clinit>
INFO: using JDK 1.4 java.sql.Timestamp handling
09.12.2010 02:23:14 org.hibernate.ejb.Version <clinit>
INFO: Hibernate EntityManager 3.6.0.Final
09.12.2010 02:23:15 org.hibernate.cfg.AnnotationBinder bindClass
INFO: Binding entity from annotated class: tld.standalone.bbstats.model.Game
09.12.2010 02:23:15 org.hibernate.cfg.annotations.EntityBinder bindTable
INFO: Bind entity tld.standalone.bbstats.model.Game on table Games
09.12.2010 02:23:15 org.hibernate.cfg.AnnotationBinder bindClass
INFO: Binding entity from annotated class: tld.standalone.bbstats.model.Roster
09.12.2010 02:23:15 org.hibernate.cfg.annotations.EntityBinder bindTable
INFO: Bind entity tld.standalone.bbstats.model.Roster on table Rosters
.
.
.
09.12.2010 02:23:14 org.hibernate.annotations.common.Version
信息:Hibernate Commons Annotations 3.2.0.Final
09.12.2010 02:23:14 org.hibernate.cfg.Environment
信息:Hibernate 3.6.0.Final
09.12.2010 02:23:14 org.hibernate.cfg.Environment
信息:找不到hibernate.properties
09.12.2010 02:23:14 org.hibernate.cfg.Environment buildBytecodeProvider
信息:字节码提供程序名称:javassist
09.12.2010 02:23:14 org.hibernate.cfg.Environment
信息:使用JDK1.4java.sql.Timestamp处理
09.12.2010 02:23:14 org.hibernate.ejb.Version
信息:Hibernate EntityManager 3.6.0.Final
09.12.2010 02:23:15 org.hibernate.cfg.AnnotationBinder bindClass
信息:来自注释类的绑定实体:tld.standalone.bbstats.model.Game
09.12.2010 02:23:15 org.hibernate.cfg.annotations.EntityBinder bindTable
信息:绑定实体tld.standalone.bbstats.model.Game桌面游戏
09.12.2010 02:23:15 org.hibernate.cfg.AnnotationBinder bindClass
信息:来自注释类的绑定实体:tld.standalone.bbstats.model.floster
09.12.2010 02:23:15 org.hibernate.cfg.annotations.EntityBinder bindTable
信息:将实体tld.standalone.bbstats.model.花名册绑定到表格花名册上
.
.
.
如何调整Hibernate日志记录级别,比如警告
例如,让我们通过属性(persistence.xml)指定级别:
Hibernate中是否有类似的工具?我总是希望使用一个中心配置文件来配置日志框架,而不是库的几个特定日志设置,因为这是使用日志框架的原因之一
Hibernate似乎是,因为您只使用JDK日志记录。在我的logging.properties文件中,我设置:
org.hibernate.SQL.level=FINEST // Show SQL statements
org.hibernate.type.level=FINEST // Show the bind parameter values
阻止hibernate如此冗长的最简单方法是将
log4j-over-slf4j.jar
添加到类路径中。这是因为hibernate使用log4j进行日志记录,当您添加该jar时,所有通过log4j的日志记录都将重定向到slf4j
org.hibernate.SQL.level=FINEST // Show SQL statements
org.hibernate.type.level=FINEST // Show the bind parameter values