Запись запросов в базу данных H2 с Play Framework
Я использую базу данных H2, в памяти, в рамках Play Framework (1.2.7).
Для того, чтобы журнал всех запросов я добавил ;TRACE_LEVEL_FILE=3
в конце этих параметров в Play's application.conf
:
db.url
%prod.db.url
%debug.db.url
Но ничего не происходит, кажется, что на машине (Mac) не создается и не обновляется файл, даже несмотря на то, что с БД определенно есть активность (когда я перехожу к веб-интерфейсу H2, я вижу, что было написано много записей).
Что мне не хватает? Как я могу получить журнал для записи?
1 ответ
Я не знаю о 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
и вы увидите все запросы к базе данных, записанные на стандартный вывод.
Есть много других опций, которые можно настроить в spy.properties
,