使用Play Framework将查询记录到H2数据库

时间:2014-10-22 16:32:02

标签: logging playframework h2 playframework-1.x h2db

我在Play Framework(1.2.7)中使用内存中的H2数据库。

为了记录所有查询,我在Play ;TRACE_LEVEL_FILE=3中的这些参数末尾添加了application.conf

  1. db.url
  2. %prod.db.url
  3. %debug.db.url
  4. 但是nithing发生了,似乎没有文件在机器上创建或更新(Mac),即使数据库肯定存在活动(当我浏览H2的Web界面时,我可以看到已经写了很多记录)

    我错过了什么?如何写日志?

1 个答案:

答案 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