JUL logging.properties和Hibernate

时间:2012-09-18 09:46:18

标签: hibernate glassfish-3 java.util.logging

我正在尝试让Hibernate记录参数值。 我正在使用Netbeans并将生成的WAR文件部署到Ubuntu盒子上的Glassfish。 我正在使用java util日志记录(而不是log4j等),因为我之前没有使用过它,想看看它是如何比较的。

我在persistence.xml中将hibernate.show_sql属性设置为true,是的,我可以看到日志中出现的SQL(INFO级别)。但是,要查看SQL中使用的param值,我相信我需要将Hibernate的日志级别更改为TRACE(或至少DEBUG),而我的应用程序似乎设置为INFO级别。

我知道logging.properties就是这样做的地方,但是文档似乎都指向在JRE中配置它,这在系统范围内。

我的问题是......我可以将logging.properties放在我的应用程序中的某个位置,因此同一个应用程序服务器上的不同应用程序可以有不同的日志记录配置吗?

并且,鉴于(根据我的阅读)Hibernate使用常见的日志记录,我是否会获得此信息,因为我使用的是JUL而不是常见的日志记录?

由于

1 个答案:

答案 0 :(得分:2)

您可以将属性文件放在应用程序的classpath根目录中。对于Web应用程序,其中一个地方是WEB-INF / classes

如果启用TRACE级别,您将能够看到类似这些的TRACE语句

insert into table (name, id) values (?, ?)
.........................

binding '1' to parameter: 2

然而,这可能不是你想要的。如果你想要sql本身应该显示包含的绑定参数,那么你可以使用P6Spy库。设置P6Spy非常简单。您可以看到如何设置here

设置完成后,您可以在日志中看到sql

insert into grouptable (name, id) values ('Name', 1)