Регистрация драйверов Scala Slick - PullRequest
0 голосов
/ 29 октября 2019

Я использую драйвер Slick со следующими версиями:

"com.typesafe.slick"  %% "slick"                              % "3.3.1",
"com.typesafe.slick"  %% "slick-hikaricp"                     % "3.3.1"

Я импортировал их в свой класс AnimalCounter.scala

import slick.jdbc.PostgresProfile.api._
import slick.jdbc.GetResult

И у меня есть следующая структура класса...

class AnimalCounter {
  val db = Database.forConfig("animaldb")

  def get(a: Animal): Future[Option[Animal]] =
    db.run(....do something......)

  def getOrCreate(a: Animal): Future[Option[Animal]] =
    db.run(....do something......)
}

Итак, как мне настроить встроенное скользящее ведение журнала для регистрации всех операций БД, которые происходят за кулисами?

1 Ответ

0 голосов
/ 08 ноября 2019

Вот ответ о том, как я получил это работает. Я думаю, что подход @ vamsi, как упомянуто выше, тоже подойдет. Однако в моем случае важно помнить, что мне нужно было удалить эту зависимость, поскольку она предназначена для подавления журналов из slick. Поэтому удалите эту зависимость, если она у вас уже есть.

"org.slf4j" % "slf4j-nop" % "1.7.26"

И после удаления зависимости ^^ настройте свой logback.xml следующим образом:

<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>[%level] [%date{MM/dd/yyyy HH:mm:ss.SSS}] [SLICK] [%logger{1000}] %green(%X{debugId}) %msg%n</pattern>
        </encoder>
    </appender>
    <root level="${SLICK_LOG_LEVEL:-INFO}">
        <appender-ref ref="STDOUT" />
    </root>

    <logger name="slick.basic.BasicBackend.action"          level="${log_action:-inherited}" />
    <logger name="slick.basic.BasicBackend.stream"          level="${log_stream:-inherited}" />
    <logger name="slick.compiler"                           level="OFF" />
    <logger name="slick.compiler.QueryCompiler"             level="OFF" />
    <logger name="slick.compiler.QueryCompilerBenchmark"    level="OFF" />
    <logger name="slick.jdbc.DriverDataSource"              level="${log_jdbc_driver:-inherited}" />
    <logger name="slick.jdbc.JdbcBackend.statement"         level="${log_jdbc_statement:-inherited}" />
    <logger name="slick.jdbc.JdbcBackend.parameter"         level="${log_jdbc_parameter:-inherited}" />
    <logger name="slick.jdbc.JdbcBackend.benchmark"         level="${log_jdbc_bench:-inherited}" />
    <logger name="slick.jdbc.StatementInvoker.result"       level="${log_jdbc_result:-inherited}" />
    <logger name="slick.jdbc.JdbcModelBuilder"              level="${log_createModel:-inherited}" />
    <logger name="slick.memory.HeapBackend"                 level="${log_heap:-inherited}" />
    <logger name="slick.memory.QueryInterpreter"            level="${log_interpreter:-inherited}" />
    <logger name="slick.relational.ResultConverterCompiler" level="${log_resultConverter:-inherited}" />
    <logger name="slick.util.AsyncExecutor"                 level="${log_asyncExecutor:-inherited}" />
</configuration>
...