Play Framework - 存储有关当前请求的信息

时间:2013-12-23 15:35:30

标签: scala playframework-2.0

在我的play framework 2应用程序中,我想要一条日志消息,其中包含请求,响应和有关响应的一些详细信息 - 例如从外部Web调用返回的搜索结果数。

我现在拥有的是这样的过滤器:

object AccessLog extends Filter {
  import play.api.mvc._
  import play.api.libs.concurrent.Execution.Implicits._

  def apply(next: RequestHeader => Future[SimpleResult])(request: RequestHeader): Future[SimpleResult] = {
    val result = next(request)
    result map { r =>
      play.Logger.info(s"Request: ${request.uri} - Response: ${r.header.status}")
    }
    result
  }
}

在记录时,我已经将我的类转换为json,因此将json解析回对象似乎很浪费,因此我可以记录有关它的信息。

是否有可能在请求管道中更早地计算搜索结果的数量,也可能在字典中,并在我在此处记录消息时将其拉出来?

我正在看flash,但不希望这些值不惜任何代价在cookie中发送出去。也许我可以清除闪光灯了。如果有更合适的方式,我想看到它。

这是只读API的一部分,不涉及用户帐户或会话。

1 个答案:

答案 0 :(得分:0)

如果您能够提供可重现的唯一请求标识符,则可以尝试使用play.api.cache.Cache object。记录完请求后,您可以将其从Cache中删除。