gpt4 book ai didi

java - 如何使用restcontroller在spring restful webservice中记录传入的json请求?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:40:16 24 4
gpt4 key购买 nike

我想记录所有传入的请求,这些请求将采用 json 格式。我正在使用 spring @RestController 和 @RequestBody 注释将传入的 json 内容绑定(bind)到 java 对象。但是我想将这些请求记录到记录器文件中。我搜索了 objectmapper 和 jacksonbinding。

@RestController
public class restClassName{

@RequestMapping(value={"/uri"})
public ObjectResponse functionRestName(@RequestBody ObjectRequest or){
String jsonInString = mapper.writeValueAsString(staff);//Redundant stuff as the request json is already read by MappingJackson2HttpMessageConverter
logger.info("request::"+jsonInString)
return instance;
}
}

但这似乎是一种多余的做法。因为 MappingJackson2HttpMessageConverter 已经读取了 httprequest 以将 json 请求转换为 java 对象。我只需要在 MappingJackson2HttpMessageConverter 将请求 json 转换为 java 对象之前记录 json。

最佳答案

实现它的最简单方法是使用 CommonsRequestLoggingFilter,如下面的伪代码所述。

@Bean
public CommonsRequestLoggingFilter requestLoggingFilter() {
CommonsRequestLoggingFilter crlf = new CommonsRequestLoggingFilter();
crlf.setIncludeClientInfo(true);
crlf.setIncludeQueryString(true);
crlf.setIncludePayload(true);
return crlf;
}

然后在 application.properties 文件中添加以下行。

logging.level.org.springframework.web.filter.CommonsRequestLoggingFilter=DEBUG

这将记录所有请求,请点击链接到 CommonsRequestLoggingFilter api doc进行更多定制。

关于java - 如何使用restcontroller在spring restful webservice中记录传入的json请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41314515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com