データベースとのやり取りに Slick を使用することにした Play 2.1 アプリを作成しています。
ただし、Slick のログを構成/有効にする方法に関するドキュメントが見つかりません。
誰もこれを知っていますか?
8 に答える
Slick は、レベル以上のロギングをほとんど行いませんDEBUG
。次application.conf
の行を追加する場合:
logger.scala.slick=DEBUG
クエリ コンパイラからの情報が殺到することになります。
おそらく、セッション情報 (接続プールの管理、クエリ文字列など) に関心があるだけでしょう。その場合、追加するだけです
logger.scala.slick.session=DEBUG
Play アプリケーションのapplication.conf
Slick なしの 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" />
select ステートメントのみを出力するには、play-2.2.1 と slick 2.0.0 で、application.conf に次のように記述します。
logger.scala.slick.jdbc.JdbcBackend.statement=DEBUG
Slick はロギングにslf4jを使用しているようです。そのため、プロジェクトなどに依存関係を追加slf4j-simple
し、Slick クラスに必要なログ レベルを設定することができます。
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>
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>