Play! Framework—show sql with Ebean in play2.4

Ebean是play內置的ORM框架,play2.0-2.3版本默認用的數據庫鏈接池是bonecp,所以ebean的sql log能夠經過配置application.conf,設置sql

db.default.logStatements=true

logger.com.jolbox=DEBUG

可是在2.4版本開始,play團隊再也不建議經過application.conf中配置logger,推薦使用conf/logback.xml進行配置,且因爲2.4版本開始play默認使用hikaricp做爲默認的數據庫鏈接池,com.jolbox再也不起效,另外hikaricp不提供log sql的方法,因此將com.jolbox更改成com.zaxxers是無效的(坑太多了不忍直視)。數據庫

說了這麼多,其實解決辦法很簡單,ebean中是經過TransactionManager中的SQL_LOGGER進行sql log的,因此只須要在logback.xml中設置(level能夠根據須要更改)segmentfault

另外stackoverflow中還有介紹一些其餘辦法的,一併回答一下,例如api

  1. Ebean.getServer(null).getAdminLogging().setLogLevel(LogLevel.SQL);app

    緣由:getAdminLogging在ebean4.6版本中沒有該api框架

  2. 使用jdbcdslog的,即便在logback.xml中設置了logger也無效,具體緣由沒有去了解。

首發於我的博客,文章地址:http://www.huzhonghua.cn/2/hzhprivate/diary/diary!detail.action?id=8ac...
轉到segmentfault但願更多遇到這個問題的人能夠看到code

相關文章
相關標籤/搜索