我目前正在使用Spring Boot将请求/响应日志记录集成到REST服务中。对于请求,我选择了Spring提供的CommonsRequestLoggingFilter:
@Bean
public CommonsRequestLoggingFilter requestLoggingFilter() {
CommonsRequestLoggingFilter loggingFilter = new CommonsRequestLoggingFilter();
loggingFilter.setIncludeClientInfo(false);
loggingFilter.setIncludeQueryString(true);
loggingFilter.setIncludePayload(true);
loggingFilter.setMaxPayloadLength(1024);
return loggingFilter;
}
在配置文件中:
logging.level.org.springframework.web.filter.CommonsRequestLoggingFilter=DEBUG
然而,对于回应,似乎没有相应的类?是否有类似的方法在Spring中记录服务器响应?
编辑: 特别是,我在上面的设置中看到的内容在BeforeRequest中没有任何内容:
2017-06-28 09:32:32.258 DEBUG 22872 --- [http-nio-8081-exec-2] o.s.w.f.CommonsRequestLoggingFilter : Before request [uri=/someApp/someObject]
请求有效负载为AfterRequest:
2017-06-28 09:32:32.272 DEBUG 22872 --- [http-nio-8081-exec-2] o.s.w.f.CommonsRequestLoggingFilter :
After request [uri=/someApp/someResource;payload={
"someObject": {
"lastName": "Doe",
"reference": "123456789"
}
}
]
日志中没有实际的响应。
答案 0 :(得分:2)
没关系,
我最终实现了自己的过滤器,也可以记录响应。基于GenericFilterBean,包装HttpResponse和HttpRequest,这样流就不会被关闭。
我仍然很奇怪,Spring提供了一个用于记录请求的类,但不提供响应...
答案 1 :(得分:1)
如果您需要监控和管理您的应用,请考虑使用actuator。它能够开箱即用地记录请求\响应。
答案 2 :(得分:0)
您可以尝试在application.properties中设置以下行以记录请求/响应
logging.level.org.springframework.ws.server.MessageTracing.sent=TRACE