如何在grails中记录响应数据

时间:2015-08-12 15:30:32

标签: rest grails logging

Grails 2.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()等,但它说已经有了输出流。

我看到一条说不要使用渲染的建议,返回一个带有单个项目的地图的模型:数据,并将其渲染到一些虚拟jsp之外。然后你可以在过滤器中获得模型。这个问题是我们有数百个渲染语句,我们真的不想重新测试所有内容(我们没有自动化测试)。

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

我们尝试了这个插件:https://grails.org/plugin/httplogger,但它不适用于grails 2.5。

0 个答案:

没有答案