Grails2.4.4请求对象日志记录

Grails2.4.4请求对象日志记录,grails,grails-2.0,Grails,Grails 2.0,我需要记录输入REST请求(xml)。 所以我创建了一个 public class RequestWrapper extends HttpServletRequestWrapper { private String _body; public RequestWrapper(HttpServletRequest request) throws IOException { super(request); _body = ""; BufferedReader buffere

我需要记录输入REST请求(xml)。 所以我创建了一个

public class RequestWrapper extends HttpServletRequestWrapper {

private String _body;

public RequestWrapper(HttpServletRequest request) throws IOException {
    super(request);
    _body = "";
    BufferedReader bufferedReader = request.getReader();
    String line;
    while ((line = bufferedReader.readLine()) != null){
        _body += line;
    }
}
现在,我使用过滤器注销输入请求:

class XmlogFilterFilters {

def filters = {
    all(controller:'*', action:'*') {
        before = {
            RequestWrapper wrappedRequest = new RequestWrapper(request)
            log.info(wrappedRequest.reader.text)
        }
    }
}
这将按预期记录输入请求

但现在在我的控制器中,请求为空,无法用于构建我的域对象:

 class InquiryHandlerController {
  def save(Inquiry inquiryInstance) {
   ... *** inquiryInstance is null here
  }
 }
我想问题是,该请求已经在
RequestWrapper
中读取,因此无法在magic requestToDomain转换中再次读取


因此,我如何将新的
RequestWrapper对象
而不是原始的
请求
传递给控制器?

最终找到了一个解决方案:

使用grailsplugin:1.1版中的GrailsHttpLogger做正确的包装器,所以日志记录和消费现在可以正常工作了。