问题描述
我正在使用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 =错误
log4j.logger.org .hibernate.tool.hbm2ddl =错误
log4j.logger.org.hibernate.hql.ast.QueryTranslatorImpl =错误
log4j.logger.org.hibernate.hql.ast.HqlSqlWalker =错误
log4j.logger.org.hibernate.hql.ast.SqlGenerator =错误
log4j.logger.org.hibernate .hql.ast.AST =错误
在应用程序启动时,这是输出:
2010-11-06 19:00:56,376 - Logger.getRootLogger().info()语句
12 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.5.3-Final
13 [main] INFO org.hibernate.cfg.Environment - 找不到hibernate.properties
16 [main] INFO org.hibernate.cfg.Environment - 字节码提供程序名称:javassist
20 [main] INFO org.hibernate.cfg.Environment - 使用JDK 1.4 java.sql.Timestamp处理
108 [main] INFO org.hibernate.cfg.Configuration - 从资源配置:com / moc / hibernate.cfg.xml
108 [main] INFO org.hibernate.cfg.Configuration - 配置资源:com / moc / hibernate.cfg.xml
124 [main] INFO org.hibernate.cfg.Configuration - 从文件读取映射:conf \hiber\Customer。 hbm.xml
。
。
。
等等
。
。
。
795 [main] INFO org.hibernate.impl.SessionFactoryImpl - 关闭
795 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - 清理连接池:jdbc:mysql:// localhost / mydb
Hibernate日志行的颜色是红色的,我的日志行是黑色的。
为什么我仍然看到Hibernate的INFO输出?我在做什么错了?
检查log4j配置和运行时发生的事件的好方法是添加
-Dlog4j.debug 选项添加到java命令行中。在你的情况下,它将变成:
$ $ p $ java -Dlog4j.debug -cp conf; lib / lib1.jar; lib / lib2。 jar; [etc] com.moc.Main
这会在控制台的信息的log4j配置。然后,您可以确定您的log4j.properties是否正确加载。
I'm using Hibernate for a personal project.In my project, I have these directory:
+ conf
log4j.properties
+ bin
my classes
Using Windows console, I go to project directory (the parent of bin and conf) and I start the application with a command like this:
java -cp conf;lib/lib1.jar;lib/lib2.jar;[etc] com.moc.Main
My log4j.properties file is this (taken from an hibernate example):
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
On application start, this is the output:
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
The color of Hibernate log lines is red, my log lines are black.
Why I still see INFO output from Hibernate? What am I doing wrong?
A good way of checking your log4j configuration and the events occuring at runtime is adding-Dlog4j.debug option to the java command line. In your case it will become:
java -Dlog4j.debug -cp conf;lib/lib1.jar;lib/lib2.jar;[etc] com.moc.Main
This will throw information on console of the sequence of loading of log4j configuration. You can then determine if your log4j.properties is getting loaded correctly or not.
这篇关于无法禁用Hibernate日志消息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!