如何使用Play 2和Scala记录请求主体?

如何使用Play 2和Scala记录请求主体?,scala,playframework,playframework-2.0,Scala,Playframework,Playframework 2.0,我将PlayFramework2.4与Scala一起使用。我想记录每个传入的请求(包括请求正文)。我该怎么做 编辑:在评论中展开讨论 如果设置筛选器,则可以访问RequestHeader对象 class LoggingFilter extends Filter { def apply(nextFilter: RequestHeader => Future[Result]) (requestHeader: RequestHeader): Future[Result

我将PlayFramework2.4与Scala一起使用。我想记录每个传入的请求(包括请求正文)。我该怎么做

编辑:在评论中展开讨论

如果设置筛选器,则可以访问RequestHeader对象

class LoggingFilter extends Filter {

  def apply(nextFilter: RequestHeader => Future[Result])
           (requestHeader: RequestHeader): Future[Result] = {
      [...]
  }
}
正如Michał指出的那样,还可以覆盖GlobalSettings上的
onRequestReceived(请求:RequestHeader)


但是从这里可以做些什么来获得请求主体呢?

在游戏中,您有一个包含onRequest方法的类GlobalSettings


只需通过GlobalSettings创建类inherit并在这个方法中实现日志记录

在游戏中,您有一个包含onRequest方法的GlobalSettings类


只需通过GlobalSettings创建类inherit并在该方法中实现日志记录

我没有看到onRequest方法,但有一个onRequestReceived(请求:RequestHeader)。问题是,我不知道如何从这一点访问请求体,我在RequestHeader实例上找不到它。我以前尝试过使用过滤器来实现这一点,它们还获得了一个RequestHeader对象。我认为这样的想法是,此时只有请求头可用,而我可能必须等待请求体流完成。。。我不知道怎么做。好吧,来吧,我在文档中清楚地看到了:看,玩,GlobalSettingsHuh,你说得对。我在看play.api.GlobalSettings,它显然不同于play.GlobalSettings(它确实有一个onRequest()。谢谢,我将对此进行研究。从这个问题来看,onRequest()似乎只在Java版本的Play中使用,而不是在Scala版本中使用。我没有看到onRequest方法,但是有一个onRequestReceived(请求:RequestHeader)。问题是,我不知道如何从这一点访问请求体,我在RequestHeader实例上找不到它。我以前尝试过使用过滤器来实现这一点,它们还获得了一个RequestHeader对象。我认为这样的想法是,此时只有请求头可用,而我可能必须等待请求体流完成。。。我不知道怎么做。好吧,来吧,我在文档中清楚地看到了:看,玩,GlobalSettingsHuh,你说得对。我在看play.api.GlobalSettings,它显然不同于play.GlobalSettings(它确实有一个onRequest()。谢谢,我将对此进行研究。从这个问题来看,onRequest()似乎只在Java版本的Play中使用,而不是在Scala版本中使用。老问题,但似乎有一些相关的答案,例如。老问题,但似乎有一些相关的答案,例如。