【问题标题】:Play Framework - Store Information About Current RequestPlay Framework - 存储有关当前请求的信息
【发布时间】:2013-12-24 04:02:41
【问题描述】:

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

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

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 的一部分,不涉及用户帐户或会话。

【问题讨论】:

    标签: scala playframework-2.0


    【解决方案1】:

    如果你能想出一个可重现的唯一请求标识符,你可以尝试使用play.api.cache.Cacheobject。记录您的请求后,您可以将其从 Cache 中删除。

    【讨论】:

    • 您认为播放会话 ID 是否是唯一的,因为这将是一个没有用户身份验证的只读 API。
    • Request 似乎有一个 id 字段。您可以尝试使用它,但您必须确认这是否是请求所独有的。我不确定。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多