scala - 记录 Play!2 Scala 应用程序的请求时间

标签 scala playframework-2.0

我正在尝试在 Scala Play!2 应用程序中记录所有请求的时间。我想我需要覆盖 onRequestReceived返回一个新的 Handler调用 Action ,然后记录时间,然后返回 Action 的结果。但我不知道如何调用处理程序。

这是我所拥有的:

override def onRequestReceived(requestHeader: RequestHeader) = {
  val startTime = System.currentTimeMillis

  val (rh, handler) = super.onRequestReceived(requestHeader)

  def newHandler = Action {
    val result = handler.apply // No such method

    val requestTime = System.currentTimeMillis - startTime
    Logger.debug("time: " + requestTime)

    result
  }

  (rh, newHandler)
}    

但是 handler.apply 不存在。我如何调用 super.onRequestReceived 返回的处理程序。而且,更重要的是,我是否以正确的方式解决这个问题?

最佳答案

好吧,与其尝试自己处理处理请求的任务,为什么不直接调用基类并记录基类中的方法处理它所花费的时间?换句话说:

override def onRequestReceived(request: RequestHeader) = {
  val startTime = System.currentTimeMillis()
  val result = super.onRequestReceived(request)
  val endTime = System.currentTimeMillis()
  logger.debug("Request lasted:" + (endTime - startTime) + " ms")
  result
}

关于scala - 记录 Play!2 Scala 应用程序的请求时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21190569/

相关文章:

java - Sbt 在尝试运行它时在通用包装器错误中没有给出匹配的架构

java - IntelliJ 和 Play 框架 : "` scala-library` has broken sources path"

scala - 玩!错误重载方法值映射与替代方案?

java - Play框架的模板引擎中是否有 "instanceof"功能?

java - 玩!框架 : no data received

json - 如何提高 Play framework 2.x 中 JsError.toFlatJson 或 JsError.toJson 返回的错误消息可读性?

java - 是否有用于简单、异步、HTTP 集成 I/O 的框架?

scala - map 合并功能的改进

scala - 将电子邮件发送到以下服务器失败 : smtp. gmail.com:25

java - 在 Play 2.4 中循环创建 InputRadioGroups