Подтвердить что ты не робот

Невозможно остановить Hibernate от записи журнала на консоль (log4j.properties в порядке)

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

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

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

Но Hibernate записывает на консоль со всеми запросами и утверждениями.

4b9b3361

Ответ 1

Установка hibernate.show_sql в true указывает hibernate на запись всех операторов 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) принимает в качестве первого параметра полное имя свойства конфигурации i.e. hibernate.show_sql, а не только show_sql.

Ответ 2

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

log4j.logger.org.hibernate = WARN
log4j.logger.org.hibernate = ERROR

Ответ 3

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

log4j.logger.org.hibernate = WARN

Ответ 4

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

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

Ответ 5

Как уже упоминалось ранее, сначала нужно установить hibernate.show_sql в false. Это предотвратит вывод hibernate в консоль или в журнал Tomdat stdout.

Но для того, чтобы направить ваш 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>

Ответ 6

Простая ссылка Just Add для вашего файла pom.xml

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

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

log4j.rootLogger=OFF

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