Slick的记录选项

时间:2013-01-22 07:19:59

标签: scala logging playframework playframework-2.0 slick

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

8 个答案:

答案 0 :(得分:16)

Slick对DEBUG级别以上的任何记录都没有做太多。在application.conf中,如果添加以下行:

  

logger.scala.slick=DEBUG

你将会被来自查询编译器的信息所淹没。

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

  

logger.scala.slick.session=DEBUG

到您的Play应用程序的application.conf

答案 1 :(得分:13)

对于没有光滑的PlayFramework 2.5.0

添加到所有数据库配置

db.default.logSql=true

添加到您的logback.xml文件:

<logger name="logger.org.jdbcdslog.StatementLogger"  level="INFO" /> 

将记录所有陈述。

参考:

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" /> 

答案 2 :(得分:11)

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

logger.scala.slick.jdbc.JdbcBackend.statement=DEBUG

答案 3 :(得分:6)

我目前不使用Play,而是像使用logback一样配置它。 This is a nice description用于设置播放记录。

一个选项是添加

logger.scala.slick=INFO 

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

   <logger name="scala.slick" level="INFO" />

答案 4 :(得分:4)

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

答案 5 :(得分:4)

我尝试将 logback.xml 与Slick记录器集成,但它不起作用。

修改 logger.xml (根据您的版本从GitHub获取最新版本),然后添加光滑的记录器。

<configuration>    
  <conversionRule conversionWord="coloredLevel" converterClass="play.api.Logger$ColoredLevel" />

  <appender name="FILE" class="ch.qos.logback.core.FileAppender">
     <file>${application.home}/logs/application.log</file>
     <encoder>
       <pattern>%date - [%level] - from %logger in %thread %n%message%n%xException%n</pattern>
     </encoder>
   </appender>

  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%coloredLevel %logger{15} - %message%n%xException{5}</pattern>
    </encoder>
  </appender>

  <logger name="play" level="INFO" />
  <logger name="application" level="DEBUG" />

  <!-- Off these ones as they are annoying, and anyway we manage configuration ourself -->
  <logger name="com.avaje.ebean.config.PropertyMapLoader" level="OFF" />
  <logger name="com.avaje.ebeaninternal.server.core.XmlConfigLoader" level="OFF" />
  <logger name="com.avaje.ebeaninternal.server.lib.BackgroundThread" level="OFF" />
  <logger name="com.gargoylesoftware.htmlunit.javascript" level="OFF" />
  <logger name="scala.slick" level="SQL" />

  <root level="ERROR">
    <appender-ref ref="STDOUT" />
    <appender-ref ref="FILE" />
  </root>

</configuration>

答案 6 :(得分:1)

对于光滑的3.1.0,将其粘贴到logback.xml目录中的resources中:

<?xml version="1.0" encoding="UTF-8"?>

<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <logger name="application" level="DEBUG"/>
    <logger name="com.zaxxer.hikari" level="INFO"/>
    <logger name="slick" level="INFO"/>

    <root level="DEBUG">
        <appender-ref ref="STDOUT"/>
    </root>
</configuration>

答案 7 :(得分:0)

在我的情况下,我必须将<logger name="slick" level="INFO"/>添加到我的log4j2.xml文件中。我使用Slick 3.0.3和Spray 1.3.3以及Log4j 2.1