sl4j scala singleton的简单日志记录

时间:2018-01-18 18:00:45

标签: scala logging singleton

我正在尝试实现sl4j简单日志记录 对于Scala单例的/内部,但它似乎并不存在 工作。

例如,如果尝试这个,代码将运行,但是 没有记录:

class Driver{
  Foo.showLogs()
}

import org.slf4j.Logger
import org.slf4j.LoggerFactory

object Foo {
  protected val log = LoggerFactory.getLogger(getClass.getName)
  showLogs() {
    val lst = (1,2,3,4,5)
    for(l <- lst) {
      log.info("List item :"  + l )
    }   
  }
}

我想做的甚至可能吗?在此先感谢!!!

1 个答案:

答案 0 :(得分:2)

它应该记录。如果没有,则由于您的日志记录配置而导致。

  1. 您是否在类路径上有SLF4J binding,例如Logback还是SLF4J-Simple?

  2. 如果你没有,你应该看到一条关于没有约束力的警告信息。

  3. 如果这样做,则会将其配置为不显示INFO的{​​{1}}日志(这将是此记录器的名称)。

  4. 旁注:Foo$是不好的做法。将log.info("List item :" + l )log.info("List item :{}", l)与Scala包装程序库(例如https://github.com/typesafehub/scala-logging)一起使用。