Scala中日志记录的相对性能影响

时间:2014-07-27 12:17:56

标签: scala logging playframework-2.0 akka

我已经看到了以下日志记录方式。每个运行时性能影响是什么?使用其中一个是否有任何其他好处。

val strValue = "xyz"
val intValue = 200

log.debug("This will log the string " + strValue + " and the int " + intValue) 

log.debug(s"This will log the string $strValue and the int $intValue" )  

log.debug("This will log the string %s and the int %d".format(strValue,intValue))

log.debug("This will log the string {} and the int {}", strValue, intValue) 

我目前的大部分日志记录需求都在Play和Akka项目中。

1 个答案:

答案 0 :(得分:1)

我认为在性能影响方面没有差异。第二种和第三种方法应该完全相同。第二个由Scala编译器转换为第三个。第二个提供了更好的语法。

说完这些日志声明应该根本没有性能影响。这些日志语句转换为以下内容。因此,它会自动遵循您可能从Java中了解的最佳实践。

if(log.isDebugEnabled()){
  log.debug(...)
}

所以最后:坚持你最喜欢的: - )