2010-01-16 7 views
21

que ya ha configuradoNo se puede dejar de hibernación desde el registro de la escritura a la consola (log4j.properties está bien)

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

y tengo desactivado todos los mensajes en log4j.properties

Pero Hibernate escribir a consola con todas las consultas & declaraciones.

+0

estoy teniendo el mismo problema. He puesto log4j.logger.org.hibernate = INFO y false, pero sigo teniendo el SQL de hibernación añade a mi archivo de registro. He buscado todo en mi proyecto para "show_sql" y "log4j" para encontrar otras referencias, pero no hay ninguna. ¿Hay alguna otra manera de activar el registro de hibernación? – Tauren

+1

Perdón por el ruido, pero estaba equivocado, haciendo las cosas que mencioné. Elimine todo el registro de SQL. Descubrí que una biblioteca de terceros que estoy usando tiene esta línea codificada: System.out.println (hql); Yikes. – Tauren

+0

posible duplicado de [No se puede hacer la parada de hibernación mostrando SQL utilizando Spring adaptador de proveedor JPA] (http://stackoverflow.com/questions/679518/cant-make-hibernate-stop-showing-sql-using-spring-jpa- proveedor-adaptador) –

Respuesta

22

Ajuste del hibernate.show_sql a true le dice a Hibernate a Escribir todas las sentencias SQL a la consola. Esta es una alternativa a la configuración de la categoría de registro org.hibernate.SQL para depurar.

Así que incluso si se establece esta propiedad a false, asegúrese de que usted no tiene la siguiente categoría definida (o configurado para utilizar un appender consola):

log4j.logger.org.hibernate.SQL=DEBUG 

Además, asegúrese de que usted no establezca el hibernate.show_sql programáticamente en verdadero al instaurar su objeto Configuration. Caza de algo como esto:

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

Tenga en cuenta que la 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 sólo show_sql.

+0

@Pascal: vea mi comentario a la pregunta. Todo lo que has sugerido, lo he investigado. ¿Tienes alguna otra idea? – Tauren

+0

Utilizo logback (más slf4j) y agregué a mi archivo de configuración de logback: ' \t \t ' –

1

Agregando algo como esto a log4j.properties?

log4j.logger.org.hibernate = WARN 
0

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

Pero cuando uso el comando ant para pruebas unitarias, nada va a la consola.

2

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

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

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

Pero con el fin de dirigir la salida de SQL a otro uso Entrar el 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) a la consola uso este código en log4j archivo .xml:

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

su simple apenas añade la dependencia a su archivo pom.xml

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

Y deshabilitará el registro y agregará poner en src/main/resources/log4j.archivo de propiedades

log4j.rootLogger=OFF 

Entonces se puede usar en cualquier momento si desea mostrar inicio sesión en la consola de ahí en adelante, o bien OFF

Cuestiones relacionadas