Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
logback additivity为false,但仍休眠Tomcat控制台上生成的sql日志_Sql_Hibernate_Logback - Fatal编程技术网

logback additivity为false,但仍休眠Tomcat控制台上生成的sql日志

logback additivity为false,但仍休眠Tomcat控制台上生成的sql日志,sql,hibernate,logback,Sql,Hibernate,Logback,如何生成2个日志文件;我们将记录由show sql=true属性生成的休眠sql消息。另一个将记录其余的Hibernate日志 我已经配置了logback.xml,如下所示: <logger name="org.hibernate" level="debug" additivity="false"> <appender-ref ref="hibernate" /> </logger> <logger name="org.hibernate.SQ

如何生成2个日志文件;我们将记录由show sql=true属性生成的休眠sql消息。另一个将记录其余的Hibernate日志

我已经配置了logback.xml,如下所示:

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

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

它正在按预期生成2个日志文件。但是,它在Tomcat控制台、hibernate appender和hibernate sql appender中复制hibernate sql日志消息


如何限制回写以仅在Hibernate sql appender中生成Hibernate sql日志?

Hibernate以两种完全不同的方式写入生成的sql。当您将hibernate.show_sql属性设置为true时,它会告诉hibernate将生成的sql写入标准输出。没有任何日志框架以任何方式参与其中。这就是为什么你几乎不应该使用它。只要从配置中删除该属性,Tomcat控制台中的SQL就会消失

Hibernate编写SQL的第二种方式,也是您应该使用的方式,是将其发送到org.Hibernate.SQL日志类别下的日志框架。它与hibernate.show\u sql完全没有连接


另外,如果您不知道,Hibernate还使用org.Hibernate.type类别记录绑定到准备语句参数的所有值。这是hibernate.show_sql无法实现的,因此使用hibernate的日志记录而不是show_sql更灵活,信息量也更丰富。

hibernate以两种完全不同的方式编写生成的sql。当您将hibernate.show_sql属性设置为true时,它会告诉hibernate将生成的sql写入标准输出。没有任何日志框架以任何方式参与其中。这就是为什么你几乎不应该使用它。只要从配置中删除该属性,Tomcat控制台中的SQL就会消失

Hibernate编写SQL的第二种方式,也是您应该使用的方式,是将其发送到org.Hibernate.SQL日志类别下的日志框架。它与hibernate.show\u sql完全没有连接

另外,如果您不知道,Hibernate还使用org.Hibernate.type类别记录绑定到准备语句参数的所有值。这是hibernate.show_sql无法实现的,因此使用hibernate的日志记录而不是show_sql更灵活,信息量也更大