Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/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
Hibernate 4.2:如何使用JDK日志API跟踪sql值_Hibernate_Logging - Fatal编程技术网

Hibernate 4.2:如何使用JDK日志API跟踪sql值

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

我们当前的项目没有log4jjar,我们只使用JDK日志API。 现在我需要查看HQL语句的值,它们当前以“?”和“?”显示

我用LOG4J找到了一个。但在JDK中找不到解决方案:---((

我在
日志记录.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覆盖该文件