java - 在 Java 中使用 Log4j 显示休眠统计信息和 sql
问题描述
我正在使用带有 Hibernate 的 Java Spring 并使用 Log4j 进行日志记录。我无法记录任何休眠日志
这是我的 log4j.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN"
"http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="default.console" class="org.apache.log4j.ConsoleAppender">
<param name="target" value="System.out" />
<param name="threshold" value="info" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ISO8601} %-5p [%c{1}] - %m%n" />
</layout>
</appender>
<appender name="default.file" class="org.apache.log4j.DailyRollingFileAppender">
<param name="file" value="/hp_exstream/DM_HOME/command-center-2.4.0/var/workspace/Flj-Contrato-Digital-01-TSE-Batch/logs/tse-batch.log" />
<param name="datePattern" value="'_'dd-MM-yyyy'.log'" />
<param name="append" value="true" />
<param name="threshold" value="info" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ISO8601} %-5p [%c{1}] - %m%n" />
</layout>
</appender>
<root>
<priority value="info" />
<appender-ref ref="default.console" />
<appender-ref ref="default.file" />
</root>
</log4j:configuration>
我已经设置了这个 Hibernate 配置
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
<prop key="hibernate.default_schema">${hibernate.schema}</prop>
<prop key="hibernate.temp.use_jdbc_metadata_defaults">false</prop>
<prop key="hibernate.generate_statistics">true</prop>
<prop key="show_sql">true</prop>
</props>
</property>
我的结果只有这些以及我的应用程序中的所有 INFO 日志:
2019-06-07 16:10:26,810 INFO [Version] - HCANN000001: Hibernate Commons Annotations {4.0.1.Final}
2019-06-07 16:10:26,817 INFO [Version] - HHH000412: Hibernate Core {4.1.12.Final}
2019-06-07 16:10:26,819 INFO [Environment] - HHH000206: hibernate.properties not found
2019-06-07 16:10:26,821 INFO [Environment] - HHH000021: Bytecode provider name : javassist
2019-06-07 16:10:31,983 INFO [Dialect] - HHH000400: Using dialect: org.hibernate.dialect.Oracle10gDialect
2019-06-07 16:10:31,994 INFO [LobCreatorBuilder] - HHH000422: Disabling contextual LOB creation as connection was null
2019-06-07 16:10:32,008 INFO [TransactionFactoryInitiator] - HHH000399: Using default transaction strategy (direct JDBC transactions)
2019-06-07 16:10:32,013 INFO [ASTQueryTranslatorFactory] - HHH000397: Using ASTQueryTranslatorFactory
2019-06-07 16:10:32,575 INFO [SaajSoapMessageFactory] - Creating SAAJ 1.3 MessageFactory with SOAP 1.1 Protocol
2019-06-07 16:10:32,719 INFO [Jaxb2Marshaller] - Creating JAXBContext with context path [com.soapros.tse.domain.ews]
但它没有显示任何关于统计信息和 sql 的信息
解决方案
尝试
<Logger name="org.hibernate.SQL" level="debug"/>
<Logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="trace"/>
对于 SQL 语句
推荐阅读
- php - 如何使用 preg_replace 从这个字符串中删除最后一个特殊字符?
- javascript - 如何使用用户名从我的数据库中为某个用户调用和回显一个值来识别用户
- angular9 - 角度调查动态问题渲染模板驱动或反应
- java - 布尔默认值 MapStruct
- amazon-web-services - 推荐用于 Adobe ColdFusion 生产环境的 Docker 映像是什么?
- c - C printf 可选小数位
- javascript - 重构 Express 代码并且无法确定变量范围
- python - 不同python版本的子流程执行
- java - 使用 Optional.map() 而不是 Optional.ifPresent() 来执行可能引发异常的代码并返回任何异常作为返回值
- javascript - 有没有办法让一个元素旋转而没有一个变量告诉它已经转动了多远?