我正在尝试在 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/