我使用玻璃鱼4和Hibernate 4.3。
如何记录Hibernate中的每个查询?
我的第一次尝试涉及SLF4J 1.7.7和Logback 1.1.2。我尝试了一些使用SLF4J和Logback的教程,但是没有结果。一个教程说要手动更改一些文件,并为glassfish添加一些选项,但我不喜欢这种方式。
在第二次尝试中,我使用了P6SPY 2.0.2。要使这个库正常工作,我需要更改连接以使用P6SPY驱动程序,并将spy.properties配置为使用真正的驱动程序。由于我已经在Glassfish上配置了我的连接池,所以我尝试在那里配置P6SPY安装教程,但是我没有设法使我的新DataSource正常工作。在P6SPY安装教程中,有一种使用java.sqlDriver和javax.sql.ConnectionPoolDataSource进行配置的方法,但我使用的是javax.sql.DataSource。
所以,这是对玻璃鱼使用SLF4J的唯一方法吗?您知道教程或如何配置它吗?
如果SLF4J不能工作,我如何配置P6SPY来使用Glassfish连接池记录查询?
还有更好的选择吗?
提前谢谢。
发布于 2014-05-09 04:10:40
要在Glassfish上使用P6Spy和DataSource,您需要设置第二个DataSource。您这样做的方式非常类似于设置ConnectionPoolDataSource的说明。唯一的区别是将res-type设置为javax.sql.DataSource。
示例:
<jdbc-connection-pool datasource-classname="com.p6spy.engine.spy.P6DataSource" res-type="javax.sql.DataSource" name="p6spyPool">
<property name="realDataSource" value="jdbc/myrealds"></property>
<property name="Password" value=""></property>
<property name="User" value="sa"></property>
</jdbc-connection-pool>
<jdbc-resource pool-name="p6spyPool" jndi-name="jdbc/p6spy"></jdbc-resource> 注意:您需要用真正数据源的jndi名称替换jdbc/myrealds。
此外,在使用数据源代理时,不需要在spy.properties中配置真正的驱动程序。
如果您在配置上仍有问题,请向p6间谍用户@googlegroups.com发送消息。
https://stackoverflow.com/questions/23514396
复制相似问题