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.