web-dev-qa-db-ja.com

Slickのログオプション

Play 2.1アプリを作成しています。このアプリでは、データベースの操作にSlickを使用することにしました。
しかし、Slickのログを構成/有効化する方法に関するドキュメントが見つかりません。
誰か知ってる?

17
Farmor

Slickは、DEBUGレベルを超えるロギングをほとんど行いません。 application.conf行を追加した場合:

logger.scala.slick=DEBUG

クエリコンパイラからの情報で大洪水になります。

おそらく、セッション情報(接続プール管理、クエリ文字列など)だけに関心があるでしょう。その場合は、追加するだけです

logger.scala.slick.session=DEBUG

playアプリケーションのapplication.conf

16
moatra

SlickなしのPlayFramework2.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" /> 
14
Jonas Anso

Selectステートメントのみを出力するには、play-2.2.1とslick 2.0.0で、application.confに次のようにします。

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

現在Playを使用していませんが、 logback を使用するように構成します。 これは素晴らしい説明です Playロギングを設定するため。

1つのオプションは追加することです

logger.scala.slick=INFO 

playのマニュアルに従って、application.confに追加します。もう1つは、カスタムlogback.xmlがある場合、そこに次の行を追加することです。

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

Slickはロギングに slf4j を使用しているようです。したがって、slf4j-simpleのようなものへの依存関係をプロジェクトに追加し、Slickクラスに必要なログレベルを設定することをお勧めします。

4
user500592

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>
4
Lord of the Goo

Slick 3.1.0の場合、これをresourcesディレクトリのlogback.xmlに貼り付けます。

<?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>
1
veegee

私の場合、<logger name="slick" level="INFO"/>ファイルにlog4j2.xmlを追加する必要がありました。 Slick3.0.3とSpray1.3.3およびLog4j2.1を使用しています

0
lautaro.dragan