scala - LazyLogging 是否启用调试?

标签 scala logging

我来自 Java 世界,在 Java 中,我们过去常常在使用调试级别进行日志记录之前测试是否启用了调试。像这样:

if(logger.isDebugEnabled)
    logger.debug("Debug")

这是为了避免评估传递给 logger.debug 的参数。我们是否必须对 scala LazyLogging 特性做同样的事情?

class Test extends LazyLogging{
   val veryBigSeq: Seq[String] = //...
   logger.debug(veryBigSeq.toString())  //<<----- Here
}

最佳答案

如你所见,代码

if(logger.isDebugEnabled)
    logger.debug("Debug")

非常重复,并且可以很容易地从作为参数传递给 logger.debug(...) 的 AST 部分自动生成。如果这不是作为宏实现的,那将是令人惊讶的。事实上,如果您看一下 Logger.scala 中的实际代码,然后你会看到所有那些 .debug.error 方法实际上都是宏。因此,将自动添加所有样板文件,不需要每个 .debug 周围的 if

关于scala - LazyLogging 是否启用调试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50350262/

相关文章:

scala - 用猫创建抽象集合的有效方法

scala - 如何在Scala中创建以下map的map

facebook - Facebook 如何存储它的日志数据?

asp.net - 使用 .Net Core 2.0 Web 应用程序登录到控制台

在不同脚本中导入的 Python 日志记录模块

testing - 如何使用 Mocha/Velocity( meteor 测试)正确记录?

java - 如何将Scala语言与Spring Security集成

scala - 如何在 IntelliJ 13 中调试 Scala SBT 项目?

parsing - 使用 scala 中的解析器组合器逐步评估

php - 无法使用 PHP 在 Linux 中写入日志文件