我正在使用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输出?我做错了什么?
答案 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