我在Play Framework(1.2.7)中使用内存中的H2数据库。
为了记录所有查询,我在Play ;TRACE_LEVEL_FILE=3
中的这些参数末尾添加了application.conf
:
db.url
%prod.db.url
%debug.db.url
但是nithing发生了,似乎没有文件在机器上创建或更新(Mac),即使数据库肯定存在活动(当我浏览H2的Web界面时,我可以看到已经写了很多记录)
我错过了什么?如何写日志?
答案 0 :(得分:2)
我不了解TRACE_LEVEL_FILE
,但您可以尝试使用p6spy。
将以下内容添加到dependencies.yml
- p6spy -> p6spy 2.1.2:
exclude:
- p6spy -> p6spy-signedjar-test
运行play deps
现在编辑你的`application.conf'如下:
# Comment out the default test URL
#%test.db.url=jdbc:h2:mem:play;MODE=MYSQL;LOCK_MODE=0
# Use the p6spy driver
%test.db.driver=com.p6spy.engine.spy.P6SpyDriver
%test.db.url=jdbc:p6spy:h2:mem:play;MODE=MYSQL;LOCK_MODE=0
# Tell the p6spy driver to use the H2 JPA dialect
%test.jpa.dialect=org.hibernate.dialect.H2Dialect
最后,创建conf/spy.properties
并在其中加入以下内容:
appender=com.p6spy.engine.spy.appender.StdoutLogger
realdatasourceclass=org.h2.Driver
那就是它,你很高兴。使用play test
启动您的应用,您将看到所有数据库查询都记录到stdout。
可以在spy.properties
中配置大量other options。