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

Ebean是play内置的ORM框架,play2.0-2.3版本默认用的数据库连接池是bonecp,因此ebean的sql log可以通过配置application.conf,设置

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可以根据需要更改)

另外stackoverflow中还有介绍一些其他办法的,一并回答一下,例如

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

    原因:getAdminLogging在ebean4.6版本中没有该api

  2. 使用jdbcdslog的,即使在logback.xml中设置了logger也无效,具体原因没有去了解。

首发于个人博客,文章地址:http://www.huzhonghua.cn/2/hzhprivate/diary/diary!detail.action?id=8ac...
转到segmentfault希望更多遇到这个问题的人可以看到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值