连接Play过滤器以包装错误处理程序

Arn*_*sen 8 scala playframework

我有一个Play过滤器,可以像这样执行一些post请求记录:

class LoggingFilter extends Filter with LazyLogging {
  override def apply(f: (RequestHeader) => Future[Result])(rh: RequestHeader): Future[Result] =
    f(rh) andThen {
      case Success(result) =>
        logger.info(s"[SUCCESS] ${result.header.status}")
      case Failure(e) =>
        val end = System.currentTimeMillis()
        val duration = end - start
        logger.error(s"[FAILURE] ${e.getMessage}}", e)
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我也有onServerError处理程序将某些已知的异常映射到适当的Result.不幸的是,在错误处理程序将已知异常转换为结果之前调用过滤器,让我没有发送给调用者的STATUS代码和日志中处理异常的堆栈跟踪.

有没有办法定义过滤器,以便它包装请求发布错误处理程序调用?