我正在使用未经过滤的提供restful API,并定义了几个意图。现在我有一个新的要求,我必须将所有请求url记录到一个文件中,但我找不到一个好的解决方案。
我已经阅读了未经过滤的文档,在SpringMVC中找不到类似“过滤器/拦截器”的文件。有没有办法做到这一点?
答案 0 :(得分:2)
不知道SpringMVC。但是,如果要记录每个请求,可以编写日志记录Intent
object RequestLogging {
def apply[A, B](intent: Cycle.Intent[A, B]) =
Cycle.Intent[A, B] {
case req =>
Cycle.Intent.complete(intent)(req) ~> new ResponseFunction[Any]() {
override def apply[C <: Any](resp: HttpResponse[C]) = {
println(s"${req.remoteAddr} ${new Date()} ${req.method} ${req.uri} ${resp.underlying.asInstanceOf[Response].getStatus}")
resp
}
}
}
}
然后像这样包装你当前的Intent
来使用它:
val plan = new unfiltered.filter.Plan {
def intent = RequestLogging {
case GET(Path("/record/1")) => ...
}
}