如何在日志中显示SQL语句?我使用的是EBeans,由于某些原因,它无法插入,但我看不出有什么问题。
我试图将我的配置编辑为:
db.default.logStatements=true并将其添加到logback.xml中
<logger name="com.jolbox" level="DEBUG" />下面是我在网上找到的一些答案,但它似乎不适用于2.4…
发布于 2015-06-28 12:57:49
日志记录随着Play 2.4而改变。从现在开始,要在控制台中显示SQL语句,只需将以下一行添加到conf/logback.xml文件中:
<logger name="org.avaje.ebean.SQL" level="TRACE" />它应该能正常工作。
正如@Flo354在评论中指出的那样,对于Play 2.6,您应该使用:
<logger name="io.bean" level="TRACE" />发布于 2016-07-18 07:02:41
从Play 2.5日志SQL语句是非常容易的,Play 2.5有一种简单的方式记录SQL语句,它构建在jdbcdslog上,可以跨所有JDBC数据库、连接池实现和持久性框架(Anorm、Ebean、JPA、SQL等)。启用日志记录时,您将看到发送到数据库的每个SQL语句以及有关该语句运行所需时间的性能信息。
Play 2.5中的SQL语句特性可以使用logSql属性由数据库配置:
db.default.logSql=true之后,可以通过将以下行添加到logback.xml来配置jdbcdslog-exp日志级别。
<logger name="org.jdbcdslog.ConnectionLogger" level="OFF" /> <!-- Won' log connections -->
<logger name="org.jdbcdslog.StatementLogger" level="INFO" /> <!-- Will log all statements -->
<logger name="org.jdbcdslog.ResultSetLogger" level="OFF" /> <!-- Won' log result sets -->发布于 2015-10-22 11:51:55
FYI,Ebean的新文档页上有一个很好的视频教程,展示了只为代码中的选定区域捕获SQL语句的方法。
因此,在开发和/或使用日志语句作为用视频显示执行测试时,只能在有问题的地方记录语句。
简单地说:像通常一样将最新的阿瓦杰-伊比亚诺姆依赖项添加到built.sbt中,所以以后您可以在代码中使用它,如下所示:
LoggedSql.start();
User user = User.find.byId(123);
// ... other queries
List<String> capturedLogs = LoggedSql.stop();注意,如果您不需要像通常一样在控制台中显示语句,那么甚至不需要获取语句的List。所以你也可以像这样使用它:
if (Play.isDev()) LoggedSql.start();
User user = User.find.byId(345);
// ... other queries
if (Play.isDev()) LoggedSql.stop();https://stackoverflow.com/questions/30828285
复制相似问题