在Scala中记录Play Framework 2的语法

Kie*_*ton 7 logging scala playframework playframework-2.0

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

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

我基本上试图找到最好的风格方式来做类似的事情:

if(Logger.isDebugEnabled)
    Logger.debug("Modified: Id = '" + real_session_id + "', Modified = " + modified.toString)
Run Code Online (Sandbox Code Playgroud)

来自C#背景(和log4net)我假设你可以这样做:

if(Logger.isDebugEnabled)
    Logger.debug("Modified: Id = '{0}', Modified = {1}", real_session_id, modified.toString)
Run Code Online (Sandbox Code Playgroud)

但是,我无法看到这对于特征的定义方式如何起作用.我也看到过模糊的引用,你可以Logger.isDebugEnabled通过使用惰性评估语法来避免检查:

Logger.debug("Modified: Id = ${real_session_id}, Modified = ${modified.toString}")
Run Code Online (Sandbox Code Playgroud)

这使用Scala宏 - 但同样,这不起作用,我可以找到很少的信息.

我错过了一些真正明目张胆的东西吗?

i.a*_*iel 9

  1. 用于日志记录的框架是logback.键入:时Logger.debug,isDebugEnabled已经隐式检查.

  2. 对于日志记录的语法,请使用Scala字符串插值.

    Logger.debug(s"Modified: Id = '$real_session_id', Modified = $modified.toString")
    
    Run Code Online (Sandbox Code Playgroud)