Hibernate 4.2:如何使用JDK日志API跟踪sql值
我们当前的项目没有log4jjar,我们只使用JDK日志API。 现在我需要查看HQL语句的值,它们当前以“?”和“?”显示 我用LOG4J找到了一个。但在JDK中找不到解决方案:---(( 我在Hibernate 4.2:如何使用JDK日志API跟踪sql值,hibernate,logging,Hibernate,Logging,我们当前的项目没有log4jjar,我们只使用JDK日志API。 现在我需要查看HQL语句的值,它们当前以“?”和“?”显示 我用LOG4J找到了一个。但在JDK中找不到解决方案:---(( 我在日志记录.properties中设置了以下内容: org.hibernate.level=TRACE org.hibernate.SQL.level=TRACE .level=TRACE 但是它没有效果。如果我设置信息级别,那么我发送给测试的所有警告都将不可见。因此,logging.properties
日志记录.properties中设置了以下内容:
org.hibernate.level=TRACE
org.hibernate.SQL.level=TRACE
.level=TRACE
但是它没有效果。如果我设置信息级别,那么我发送给测试的所有警告都将不可见。因此,logging.properties
绑定到Java类路径
有人有什么想法吗?关于Java JDK日志记录的权威资源是Java日志记录指南:
但一般来说,JDK日志记录不定义跟踪级别:
Hibernate使用JBoss日志记录。JBoss日志记录定义了一个跟踪级别(与除JDK之外的大多数日志库一样);当连接到JDK日志记录时,JBoss日志记录将跟踪映射到JDK的更精细级别。因此,您希望在配置中使用=FINER
(或=FINEST
)关于Java JDK日志记录的权威资源是Java日志记录指南:
但一般来说,JDK日志记录不定义跟踪级别:
Hibernate使用JBoss日志记录。JBoss日志记录定义了一个跟踪级别(与除JDK之外的大多数日志库一样);当连接到JDK日志记录时,JBoss日志记录将跟踪映射到JDK的更精细级别。因此,您希望在配置中使用=FINER
(或=FINEST
)JBoss Logging将使用org.JBoss.Logging.provider键查找系统设置。您需要做的是使用值为“jdk”的键设置系统属性,以便Hibernate使用Java日志框架进行日志记录
System.setProperty("org.jboss.logging.provider", "jdk");
要在sql中记录绑定参数,需要在logging.properties中再添加一条语句
org.hibernate.type.descriptor.sql.level=FINEST
您可以参考Hibernate日志指南中的详细信息
JBoss Logging将使用org.JBoss.Logging.provider键查找系统设置。您需要做的是使用值为“jdk”的键设置系统属性,以便Hibernate使用Java日志框架进行日志记录
System.setProperty("org.jboss.logging.provider", "jdk");
要在sql中记录绑定参数,需要在logging.properties中再添加一条语句
org.hibernate.type.descriptor.sql.level=FINEST
您可以参考Hibernate日志指南中的详细信息
我遇到了同样的问题,不想使用其他日志记录工具
我最终得到了以下配置():
也许不是最好的一个,因为它有时会记录很多东西,但它正在工作。我遇到了同样的问题,不想使用其他日志记录工具
我最终得到了以下配置():
也许不是最好的一个,因为它有时会记录很多东西,但它是有效的。使用wireshark,你可以很容易地看到完整的mysql语句使用wireshark,你可以很容易地看到完整的mysql语句嗨,我已经尝试过,设置最好的,但没有效果:-((如果我调试到org.jboss.logging.basiclocker.public boolean isTraceEnabled(){return isEnabled(Level.TRACE);,则返回“false”,因为java.util.logging.Logger.public boolean isLoggable(Level-Level){if(Level.intValue()lib
目录中查找logging.properties
文件。您可以使用java.util.logging.config.file
系统属性来覆盖它。@您好,我的logging.properties在java类路径中没有正确绑定,我不知道当前有什么问题,但我如果我使用以下代码加载loggings.properties,如果我使用最高级,我会看到HQLs的真实值:公共静态void loadLoggings(字符串全名)抛出SecurityException,IOException{InputStream is=null;is=new FileInputStream(全名);LogManager.getLogManager().readConfiguration(is);}。我已经在属性文件中定义了这样的级别:org.hibernate.SQL.level=FINEST。其他级别选项设置为OFFHi,我已经尝试过,设置FINEST没有任何效果:-((如果我调试到org.jboss.logging.basiclugger.public boolean isTraceEnabled(){return isEnabled(level.TRACE);“false”返回,因为java.util.logging.Logger.public boolean isLoggable(Level Level){if(Level.intValue()lib
目录中查找logging.properties
文件。您可以使用java.util.loggin覆盖该文件