Slick的记录选项

Far*_*mor 17 logging scala playframework playframework-2.0 slick

我正在创建一个Play 2.1应用程序,我决定使用Slick进行数据库交互.
但是,我找不到有关如何为Slick配置/启用日志记录的文档.
谁知道这个?

moa*_*tra 16

Slick在上面的任何日志记录都没有做太多DEBUG.在application.conf您添加一行:

logger.scala.slick=DEBUG

你会得到来自查询编译器的信息.

您可能只对会话信息(连接池管理,查询字符串等)感兴趣.在这种情况下,只需添加

logger.scala.slick.session=DEBUG

到您的Play应用程序 application.conf

  • 请注意,在Slick 3中.*记录器名称应为`logger.slick`和`logger.slick.session` (7认同)

Jon*_*nso 14

适用于没有Slick的PlayFramework 2.5.0

添加到所有数据库配置

db.default.logSql=true
Run Code Online (Sandbox Code Playgroud)

添加到logback.xml文件:

<logger name="logger.org.jdbcdslog.StatementLogger"  level="INFO" /> 
Run Code Online (Sandbox Code Playgroud)

将记录所有语句.

参考:

https://www.playframework.com/documentation/2.5.x/ScalaDatabase#How-to-configure-SQL-log-statement

要使用Slick 3.0,只需使用即可

<logger name="slick.jdbc.JdbcBackend.statement"  level="DEBUG" /> 
Run Code Online (Sandbox Code Playgroud)

  • 我可能错了,但是阅读播放框架代码我看不到Slick与jdbcdslog集成.确保它不会读取logSql的配置.也许应该打开一个问题. (2认同)

use*_*983 11

要仅使用slick 2.0.0在play-2.2.1中打印select语句,在application.conf中有:

logger.scala.slick.jdbc.JdbcBackend.statement=DEBUG
Run Code Online (Sandbox Code Playgroud)


Jac*_*ack 6

我目前没有使用Play,但是将其配置为使用logback.这是设置Play日志记录的一个很好的描述.

一种选择是添加

logger.scala.slick=INFO 
Run Code Online (Sandbox Code Playgroud)

到play.conf,根据Play手册.另一个,如果你有一个自定义logback.xml,就是在那里添加以下行:

   <logger name="scala.slick" level="INFO" />
Run Code Online (Sandbox Code Playgroud)


小智 4

Slick 似乎使用slf4j进行日志记录。因此,您可能想要添加对类似slf4j-simple项目的依赖项,并为 Slick 类设置所需的日志级别。

  • 这意味着,对于一个工作示例,将 slf4j-simple-[1.7.5].jar 添加到类路径中,并将 -Dorg.slf4j.simpleLogger.defaultLogLevel=trace 添加到命令行中。 (2认同)