无法禁用Hibernate日志消息

时间:2010-11-06 18:10:09

标签: java hibernate logging log4j

我正在使用Hibernate进行个人项目。 在我的项目中,我有这些目录:

+ conf
log4j.properties
+ bin
我的班级

使用Windows控制台,我转到项目目录(bin和conf的父目录),然后使用如下命令启动应用程序:

java -cp conf;lib/lib1.jar;lib/lib2.jar;[etc] com.moc.Main

我的log4j.properties文件是这个(取自hibernate示例):

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d - %m%n

log4j.rootLogger=info, stdout

log4j.logger.org.hibernate=error
log4j.logger.org.hibernate.tool.hbm2ddl=error
log4j.logger.org.hibernate.hql.ast.QueryTranslatorImpl=error
log4j.logger.org.hibernate.hql.ast.HqlSqlWalker=error
log4j.logger.org.hibernate.hql.ast.SqlGenerator=error
log4j.logger.org.hibernate.hql.ast.AST=error

在应用程序启动时,这是输出:

2010-11-06 19:00:56,376 - Logger.getRootLogger().info() statement
12 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.5.3-Final
13 [main] INFO org.hibernate.cfg.Environment - hibernate.properties not found
16 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist
20 [main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling
108 [main] INFO org.hibernate.cfg.Configuration - configuring from resource: com/moc/hibernate.cfg.xml
108 [main] INFO org.hibernate.cfg.Configuration - Configuration resource: com/moc/hibernate.cfg.xml
124 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: conf\hiber\Customer.hbm.xml
.
.
.
and so on
.
.
.
795 [main] INFO org.hibernate.impl.SessionFactoryImpl - closing
795 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - cleaning up connection pool: jdbc:mysql://localhost/mydb

Hibernate日志行的颜色为红色,我的日志行为黑色。

为什么我仍然看到来自Hibernate的INFO输出?我做错了什么?

3 个答案:

答案 0 :(得分:2)

检查log4j配置和运行时发生的事件的好方法是添加 java命令行的 -Dlog4j.debug 选项。在你的情况下,它将成为:

java  -Dlog4j.debug -cp conf;lib/lib1.jar;lib/lib2.jar;[etc] com.moc.Main

这将在log4j配置的加载序列的控制台上抛出信息。然后,您可以确定log4j.properties是否正确加载。

答案 1 :(得分:0)

您的log4j配置看起来没问题,是类路径和根包中的log4j.properties文件吗?即它是在conf的根目录中,lib1.jar,lib2.jar是你的类路径中的任何其他jar /目录吗?

尝试此操作以检查文件是否正确加载。

在这一行:

log4j.rootLogger=info, stdout

chage to

log4j.rootLogger=error, stdout

这将设置根记录器的日志级别,因此所有记录器都设置为ERROR,如果您仍然看到INFO日志条目,那么您的log4j.properties文件一定不能正确加载,很可能是出于上述原因。 / p>

答案 2 :(得分:0)

你可以尝试这种语法吗?

log4j.category.org.hibernate=ERROR