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二级缓存是否用于查询?_Hibernate_Logging_Orm_Grails_Second Level Cache - Fatal编程技术网

如何知道/记录Hibernate二级缓存是否用于查询?

如何知道/记录Hibernate二级缓存是否用于查询?,hibernate,logging,orm,grails,second-level-cache,Hibernate,Logging,Orm,Grails,Second Level Cache,目前,为了检查Hibernate二级缓存是否用于数据库查询,我检查了我的SQL日志(通过Datasource.groovy中的p6spy或logSql=true),查看Grais/Hibernate是否触发了SQL查询。我假设如果查询没有被记录,这可能意味着使用了缓存 对于一个简单的信息来说,这是相当复杂的,不是吗 那么,您知道一种获取和记录信息的简单方法吗:“缓存已使用,而DB查询已触发” 编辑:根据Pascal的建议,我将此跟踪“org.hibernate.cache”添加到我的log4j配

目前,为了检查Hibernate二级缓存是否用于数据库查询,我检查了我的SQL日志(通过Datasource.groovy中的p6spy或logSql=true),查看Grais/Hibernate是否触发了SQL查询。我假设如果查询没有被记录,这可能意味着使用了缓存

对于一个简单的信息来说,这是相当复杂的,不是吗

那么,您知道一种获取和记录信息的简单方法吗:“缓存已使用,而DB查询已触发”


编辑:根据Pascal的建议,我将此
跟踪“org.hibernate.cache”
添加到我的log4j配置中。

简短的回答是,当启用查询日志记录时,会记录每个查询

通过
SessionFactory.getStatistics()
Session.getStatistics()
可以获得各种统计信息。SessionStatistics上没有查询执行和查询缓存命中和未命中计数

在没有并发会话的测试环境中,可以执行两次可缓存查询,并断言
SessionStatistics.getQueryCacheChitCount()
SessionStatistics.getQueryExecutionCount()
仅增加1


最有效地显示所有这些统计数据和日志

您可以激活
org.hibernate.cache
来记录所有二级缓存活动。为此(根据Grails),编辑
Config.groovy
文件。查找带有以下内容的行:

hibernate = "off"
并将其替换为:

hibernate.cache = "trace,stdout"