scala - Scala 中 Play Framework 2 的日志记录语法

标签 scala logging playframework playframework-2.0

这是一个非常愚蠢的问题,但是如何在 Play Framework 2(和 Scala 中?)中方便地格式化日志字符串。

我已经用谷歌搜索过,但很难找到一个例子,基本上大多数链接都在谈论首先配置 Logback,我做得很好。

我基本上是想找到最好的风格方式来做这样的事情:

if(Logger.isDebugEnabled)
    Logger.debug("Modified: Id = '" + real_session_id + "', Modified = " + modified.toString)

来自 C# 背景(和 log4net)我假设你可以做这样的事情:
if(Logger.isDebugEnabled)
    Logger.debug("Modified: Id = '{0}', Modified = {1}", real_session_id, modified.toString)

但我看不出这将如何与它定义的特性一起工作。我还看到了关于如何避免检查 Logger.isDebugEnabled 的模糊引用。通过使用惰性求值语法,例如:
Logger.debug("Modified: Id = ${real_session_id}, Modified = ${modified.toString}")

这使用 Scala 宏 - 但同样,这不起作用,我找不到关于它的信息。

我在这里错过了一些非常明显的东西吗?

最佳答案

  • 用于日志记录的框架是 logback。当您输入:Logger.debug , isDebugEnabled已经隐式检查。
  • 对于日志记录的语法,请使用 Scala 字符串插值。
    Logger.debug(s"Modified: Id = '$real_session_id', Modified = $modified.toString")
    
  • 关于scala - Scala 中 Play Framework 2 的日志记录语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18932178/

    相关文章:

    scala - 从不重新计算相同的部分评估两次的意义上说,部分函数应用程序可以是惰性的吗?

    java - 有理由避免使用 slf4j 吗?

    logging - OpenJPA 在 WAS 7 上部署时不记录日志

    playframework - 如何影响 Play Controller 中的重定向行为?

    scala - 为什么 scalac 会在这里出现 "diverging implicit expansion"错误?

    Scala 下限类型限制 'is a subtype' 对方法参数的限制

    scala - sbt 跨项目共享依赖关系

    mysql慢查询日志

    playframework - Play framework 2.3.x Server Error 无法注册类

    scala - SBT 中的排序和覆盖任务