我试图在Scala播放2应用程序中记录所有请求的时间。我认为我需要重写onRequestReceived来返回一个新的Handler,它调用操作,然后记录时间,然后返回操作的结果。但我不知道该怎么打电话给处理员。
我现在拥有的是:
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返回的处理程序。更重要的是,我这样做对吗?
发布于 2014-03-02 09:06:27
那么,为什么不尝试自己处理请求的任务,而不只是调用基类并记录基类中的方法处理它所需的时间呢?换言之:
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
}https://stackoverflow.com/questions/21190569
复制相似问题