uso logger j4log hacer desde configurar como java hibernate orm

java - logger - No se puede evitar que Hibernate escriba el registro en la consola(log4j.properties está bien)



log4j java uso (6)

Ya he puesto

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

y he deshabilitado todos los mensajes en log4j.properties

Pero Hibernate escribe en la consola con todas las consultas y declaraciones.


¿Estás agregando algo como esto a log4j.properties?

log4j.logger.org.hibernate = WARN


Al establecer hibernate.show_sql en true indica que hibernate escribe todas las sentencias de SQL en la consola. Esta es una alternativa a la configuración de la categoría de registro org.hibernate.SQL para depurar.

Entonces, incluso si establece esta propiedad en false , asegúrese de no tener la siguiente categoría definida (o configurada para usar un agregador de consola):

log4j.logger.org.hibernate.SQL=DEBUG

Además, asegúrese de que no establece hibernate.show_sql programáticamente en verdadero cuando instime su objeto de Configuration . Cazar algo como esto:

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

Tenga en cuenta que setProperty(String propertyName, String value) toma como primer parámetro el nombre completo de una propiedad de configuración, es decir, hibernate.show_sql , no solo show_sql .


Como se mencionó anteriormente, primero debe establecer hibernate.show_sql en false . Esto evitará la salida de hibernación a la consola o al registro de salida estándar de Tomcat.

Pero para dirigir su salida SQL a otro registro use este código en el archivo log4j.xml:

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

Para mantener el nivel de registro de hibernación normal (WARN / ERROR) para la consola, use este código en el archivo log4j.xml:

<category name="org.hibernate"> <priority value="WARN" /> </category>


Es simple simplemente agrega dependencia a tu archivo pom.xml

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

Y deshabilitará el registro y agregará el archivo src / main / resources / log4j.properties

log4j.rootLogger=OFF

Luego, puede usarlo en cualquier momento si desea mostrar el inicio de sesión en la consola y luego en ella o en el otro modo APAGAR


Hola, me di cuenta de que también puedes resolver esto con estas 2 líneas en tu archivo log4j.properties.

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


Parece muy extraño, pero cuando se usa la tarea de prueba de Eclipse with JUnit, toda la salida sigue yendo a la consola (en la ventana de la consola de Eclipse).

Pero cuando uso el comando ant para la prueba de unidad, nada va a la consola.