尽管使用 Logback 配置了 Hibernate 的特定日志记录,但我的 Spring Boot 应用程序仍然在控制台中显示 Hibernate 查询,如下所示:
<appender name="HIBERNATE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOGDIR}/hibernate.log</file>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} - %msg%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOGDIR}/hibernate.log.%d</fileNamePattern>
</rollingPolicy>
</appender>
<logger name="org.hibernate" additivity="false">
<appender-ref ref="HIBERNATE"/>
</logger>
<logger name="org.hibernate.SQL" additivity="false">
<appender-ref ref="HIBERNATE"/>
</logger>
<logger name="org.hibernate.type.descriptor.sql" additivity="false">
<appender-ref ref="HIBERNATE"/>
</logger>
它确实将 Hibernate 的日志(包括查询)发送到文件 hibernate.log
。但我也想避免控制台中的查询,我认为这种配置应该发生。
我错过了什么?
原文由 garci560 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果将
hibernate.show_sql
设置为true
,Hibernate 将简单地将 SQL 语句打印到控制台(不要与org.hibernate.SQL
下的日志记录混淆)。SqlStatementLogger
负责记录 SQL 语句及其logStatement
看起来像:因此,如果您不想在控制台上看到查询,只需将
hibernate.show_sql
设置为false
或将其完全删除即可。在 Spring Boot 中,只需将其添加到您的application.properties
: