Rest 如何在grails中记录响应数据

Rest 如何在grails中记录响应数据,rest,grails,logging,Rest,Grails,Logging,Grails2.5。我需要将请求和响应记录到日志文件中 这是为了记录REST/JSON api调用。我需要记录请求JSON(使用过滤器很容易)和响应JSON(看起来不可能) api调用如下所示: class myController { def myMethod() { def json = request.JSON : render(status:200, contentType:'application/json' { [

Grails2.5。我需要将请求和响应记录到日志文件中

这是为了记录REST/JSON api调用。我需要记录请求JSON(使用过滤器很容易)和响应JSON(看起来不可能)

api调用如下所示:

class myController {
   def myMethod() {
       def json = request.JSON
       :
       render(status:200, contentType:'application/json' {
           ['something': "something",'sometingElse' : 42]
   }
已尝试创建筛选器,例如:

class LoggingFilters {
   def filters = {
      after = { Map model ->
      log.debug "${response.???"
      }
问题是,如何处理输出?尝试了respose.outputStream.toString()等,但它表示某些内容已经获得了输出流

我看到了一个建议,它说不要使用render,返回一个带有单个项的映射的模型:data,然后在外部根据一些虚拟jsp呈现这个。然后可以在过滤器中获取模型。问题是我们有数百条呈现语句,我们并不想重新测试所有语句(我们没有自动测试)

另一个解决方法是使用tomcat请求转储程序,但这不符合我们的要求(例如,我们需要删除某些输出,如密码,希望能够登录到db,只希望记录非常具体的事情等)


我们尝试了这个插件:,但它不适用于grails 2.5。

覆盖render方法怎么样?我相信OP不想将响应作为JSON返回给客户端。。。这项工作已经完成。OP希望记录响应。用于调试、分析或诸如此类的事情。