Невозможно отключить сообщения журнала Hibernate - PullRequest
5 голосов
/ 06 ноября 2010

Я использую Hibernate для личного проекта.В моем проекте у меня есть эти каталоги:

+ conf
log4j.properties
+ bin
мои классы

Используя консоль Windows, я захожу в каталог проекта (родительский элемент bin и conf) и запускаю приложение с помощью команды, подобной этой:

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

Мой файл log4j.properties такой (взят из примера гибернации):

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 - красный, строки журнала - черный.

Почему я все еще вижу вывод INFO из Hibernate?Что я делаю не так?

Ответы [ 3 ]

2 голосов
/ 23 марта 2011

Хороший способ проверить конфигурацию log4j и события, происходящие во время выполнения, - добавить параметр -Dlog4j.debug в командную строку java.В вашем случае это станет:

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

Это выдаст информацию на консоль последовательности загрузки конфигурации log4j.Затем вы можете определить, правильно ли загружаются ваши log4j.properties.

0 голосов
/ 17 марта 2011

Можете ли вы попробовать этот синтаксис взамен?

log4j.category.org.hibernate=ERROR
0 голосов
/ 06 ноября 2010

Ваша конфигурация log4j выглядит нормально, ваш файл log4j.properties находится в classpath и в корневом пакете?Т.е. он находится в корне conf, lib1.jar, lib2.jar или любого другого каталога jar / в вашем пути к классам?

Попробуйте проверить, правильно ли загружается файл.

В этой строке:

log4j.rootLogger=info, stdout

chage на

log4j.rootLogger=error, stdout

Это установит уровень журнала для корневого регистратора и, следовательно, всех регистраторов на ERROR, если вы все еще видите записи журнала INFOтогда ваш файл log4j.properties не должен загружаться правильно, скорее всего по причинам, указанным выше.

...