Подтвердить что ты не робот

Параметры ведения журнала для Slick

Я создаю приложение Play 2.1, в котором я решил использовать Slick для взаимодействия с базой данных.
Однако я не могу найти документацию о том, как настроить/включить ведение журнала для Slick.
Кто-нибудь знает это?

4b9b3361

Ответ 1

Slick не выполняет большую часть регистрации на уровне DEBUG. В application.conf, если вы добавите строку:

logger.scala.slick=DEBUG

вы собираетесь получить информацию из компилятора запроса.

Вероятно, вас интересует только информация о сеансе (управление пулом подключений, строки запросов и т.д.). В этом случае просто добавьте

logger.scala.slick.session=DEBUG

в ваше приложение для воспроизведения application.conf

Ответ 2

Для PlayFramework 2.5.0 без Slick

Добавить ко всем конфигурациям вашей базы данных

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

Ответ 3

Чтобы печатать только операторы select, в play-2.2.1 с slick 2.0.0, в application.conf есть:

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

Ответ 4

В настоящий момент я не использую Play, но настрою его так, как вы бы использовали logback. Это хорошее описание для настройки ведения журнала воспроизведения.

Один из вариантов - добавить

logger.scala.slick=INFO 

в application.conf, в соответствии с руководством по воспроизведению. Другой, если у вас есть собственный файл logback.xml, должен добавить туда следующую строку:

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

Ответ 5

Slick, по-видимому, использует slf4j для ведения журнала. Таким образом, вы можете добавить зависимость от чего-то типа slf4j-simple к вашему проекту и установить желаемый уровень журнала для классов Slick.

Ответ 6

Я попытался интегрировать logback.xml с регистратором Slick, но он не работает.

Модифицировать logger.xml(получить последнюю версию от GitHub на основе вашей версии) и вместо этого использовать slick logger.

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

Ответ 7

Для slick 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>

Ответ 8

В моем случае мне пришлось добавить <logger name="slick" level="INFO"/> в мой log4j2.xml файл. Я использую Slick 3.0.3 с Spray 1.3.3 и Log4j 2.1