您可以想象Playframework将请求作为管道工作。
筛选器是记录请求的合适位置,但是,正如您所发现的,它没有访问主体的权限。这主要是因为在这个阶段,主体没有被解析。过滤器只需通过报头就可以拒绝不合适的请求,而不需要浪费资源来解析主体。这是过滤器的主要思想。
管道中的下一个阶段是操作。如果您需要对请求的主体做一些事情,那么您需要使用actions组合。不幸的是,您将需要用您的复合操作包装\replace每个操作。
def logging[A](action: Action[A])= Action.async(action.parser) { request =>
Logger.info("Calling action")
action(request)
}
object LoggingAction extends ActionBuilder[Request] {
def invokeBlock[A](request: Request[A], block: (Request[A]) => Future[Result]) = {
block(request)
}
override def composeAction[A](action: Action[A]) = new Logging(action)
}
def index = LoggingAction {
Ok("Hello World")
}
def index = Logging {
Action {
Ok("Hello World")
}
}
使用Grails 4构建一个新的API,我希望可以选择记录完整的请求(标头、方法、内容等)。我可以在Interceptor中看到请求,但是内容只能读取一次(使用),所以在Interceptor中读取它会阻止内容在Controller中可用。 在堆栈溢出中已经有一些类似的问题,通过使用Grails过滤器来解决这个需求。 我不想走这条路的一个原因是,根据Grails文档,过滤器现在被认为是不建议使用的
我正在使用改造2.x,我想记录请求和响应的标头和正文。 这是我正在做的,我的问题是请求的标题没有被记录在Android Monitor中,但其余的一切都被记录了。 Gradle版本 使用RC1和3.0.1由于错误问题报告错误链接
我的服务界面如下所示。 我希望保留在接口级别定义的注释,而不是方法实现。有办法得到这份工作吗?
将PostSharp用于C#应用程序,我有以下场景: Namespace_ACustomLoggingMethod Namespace_B.DoThings thingMethod(实际上是几种不同的方法) DoMomthingMethod调用CustomLoggingMethod,它以所需的格式创建日志条目并且运行良好。正如预期的那样,日志条目将源记录为CustomLoggingMethod,我
我在我的反应应用程序中有一个axios请求,为此我遵循axios npm文档。 这是我的axios请求 我能够成功记录成功请求的数据。但是,当我故意产生一个错误并尝试将其记录到console.log中时,我不会将结果记录下来,我只是看到了 邮递http://localhost:3000/login 401(未经授权):3000/登录:1 错误:请求失败,状态代码401 login.js:66 在c
使用JBOSS 6.2 EAP作为应用服务器开发web应用程序。正在尝试自定义日志记录。要为指定位置的不同模块创建不同的日志。 做了一些家庭作业并尝试添加 在standalone的profile部分中。xml 并在同一文件中添加了记录器 此外,无法找到log4j。jboss文件夹中的xml。刚接触JBoss的人,猜一下遗漏了什么或走错了方向。有人能帮忙吗。