【问题标题】:Setting up scala-logging in a sbt module application在 sbt 模块应用程序中设置 scala 日志记录
【发布时间】:2014-09-12 20:50:31
【问题描述】:

我有一个 sbt 项目,其中 1 个项目也是一个播放应用程序,所以:

/db
/services
/web (play)

所以在 play web 应用程序中日志记录工作正常,我可以在 application.conf 文件中设置日志级别就好了。

在我的 /services 和 /db 项目中,当前未设置日志记录。 我喜欢https://github.com/typesafehub/scala-logging,所以我需要帮助来设置它。

到目前为止,我的依赖项中有:

// logging
  val slf4j = "org.slf4j" % "slf4j-api" % slf4jVersion
  val scalaLogging = "com.typesafe.scala-logging" %% "scala-logging-slf4j" % scalaLoggingVersion
  val logbackCore = "ch.qos.logback" % "logback-core" % logbackVersion
  val logbackClassic = "ch.qos.logback" % "logback-classic" % logbackVersion

现在我去了我的 /services sbt 项目中的一个对象并尝试了:

object SomeThing extends LazyLogging {

}
  1. 我正在使用 IntelliJ,但它没有导入任何内容,所以我不确定我应该在这里做什么?

  2. 另外,如果我想在类中显式创建记录器,我必须导入和声明什么?

谁能解释一下 scala-logging 的工作原理?

从我阅读的内容来看,它似乎使用与 sl4j 相同的 api,但它使用宏,如果禁用日志记录级别,则无需执行字符串插值,从而以某种方式使事情变得更高效。但它需要(就像 sl4j)和实际的日志框架,在这种情况下我使用的是 logback(与 play 相同)。

【问题讨论】:

    标签: scala playframework slf4j logback


    【解决方案1】:

    尝试:

    libraryDependencies in Global ++= Seq(
      "com.typesafe.scala-logging" %% "scala-logging" % "3.1.0",
      "ch.qos.logback" % "logback-classic" % "1.1.2",
    )
    

    【讨论】:

    • 我认为这部分很好,我需要一个示例来说明如何创建一个使用 trait 进行日志记录的类,以及一个明确定义记录器的类(请使用导入,因为有时 IntelliJ 不起作用)
    猜你喜欢
    • 1970-01-01
    • 2023-03-23
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 2020-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多