Не могу остановить Hibernate от записи журнала в консоль (log4j.properties в порядке) - PullRequest
21 голосов
/ 16 января 2010

Я уже установил

<property name="show_sql">false</property>

и отключил все сообщения в log4j.properties

Но Hibernate записывает в консоль все запросы и операторы.

Ответы [ 6 ]

23 голосов
/ 16 января 2010

Установка hibernate.show_sql на true указывает на режим гибернации Записать все операторы SQL на консоль. Это альтернатива настройке категории журнала org.hibernate.SQL для отладки.

Поэтому, даже если вы установите это свойство на false, убедитесь, что у вас не определена следующая категория (или она не настроена на использование консольного приложения):

log4j.logger.org.hibernate.SQL=DEBUG

Кроме того, убедитесь, что вы не установили hibernate.show_sql программно в значение true при создании экземпляра объекта Configuration. Охота что-то вроде этого:

Configuration cfg = new Configuration().configure().
    .setProperty("hibernate.show_sql", "true");

Обратите внимание, что setProperty(String propertyName, String value) принимает в качестве первого параметра полное имя свойства конфигурации, т.е. hibernate.show_sql, а не просто show_sql.

2 голосов
/ 09 декабря 2010

Привет, я понял, что вы можете решить эту проблему также с помощью этих 2 строк в файле log4j.properties.

log4j.logger.org.hibernate = WARN
log4j.logger.org.hibernate = ERROR
1 голос
/ 16 января 2010

Вы добавляете что-то подобное в log4j.properties?

log4j.logger.org.hibernate = WARN
0 голосов
/ 25 января 2018

Просто добавьте зависимость в ваш файл pom.xml

<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>

И это отключит ведение журнала и добавит положить в файл src / main / resources / log4j.properties

log4j.rootLogger=OFF

Затем вы можете использовать его в любое время, если хотите отобразить журнал на консоли, затем включить или отключить

0 голосов
/ 31 декабря 2015

Как упоминалось ранее, вам необходимо сначала установить hibernate.show_sql на false. Это предотвратит выход из спящего режима в консоль или журнал stdout Tomcat.

Но чтобы направить вывод sql в другой журнал, используйте этот код в файле log4j.xml:

<logger name="org.hibernate.SQL" additivity="false">
    <level value="DEBUG" />
    <appender-ref ref="hibernate"/>
</logger>

Чтобы поддерживать нормальный уровень журнала гибернации (WARN / ERROR) для консоли, используйте этот код в файле log4j.xml:

<category name="org.hibernate">
    <priority value="WARN" />
</category>
0 голосов
/ 18 января 2010

Это кажется очень странным, но при использовании Eclipse с заданием JUnit Test все выходные данные все равно отправляются на консоль (в окне консоли Eclipse).

Но когда я использую команду ant для модульного тестирования, в консоль ничего не попадает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...