springboot打印请求路径的日志
方法1,配置debug日志logging.level.root=debug #root表示整个项目方法2,自定义拦截器<!-- FastJson 来处理JSON数据 --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId>
·
方法1,配置debug日志
logging.level.root=debug #root表示整个项目
方法2,自定义拦截器
<!-- FastJson 来处理JSON数据 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.31</version>
</dependency>
@Slf4j
//@WebFilter(value="/*",filterName = "aLoggingFilter" )
@Configuration
public class LoggingFilterConfig implements Filter {
@Bean
public FilterRegistrationBean registrationBean(){
FilterRegistrationBean filter = new FilterRegistrationBean(new LoggingFilterConfig());
filter.addUrlPatterns("/*");
//多个过滤器时执行顺序
// 最高级别。
filter.setOrder(FilterRegistrationBean.HIGHEST_PRECEDENCE);
return filter;
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest req = (HttpServletRequest)request;
Map<String, Object> map = new HashMap<String, Object>();
// Get request URL.
map.put("URL", req.getRequestURL());
map.put("Method", req.getMethod());
map.put("Protocol",req.getProtocol());
// 获取header信息
List<Map<String, String>> headerList = new ArrayList<>();
Map<String, String> headerMaps = new HashMap<String, String>();
for(Enumeration<String> enu = req.getHeaderNames(); enu.hasMoreElements();){
String name = enu.nextElement();
headerMaps.put(name,req.getHeader(name));
}
headerList.add(headerMaps);
map.put("headers", headerList);
//获取parameters信息
List<Map<String, String>> parameterList = new ArrayList<>();
Map<String, String> parameterMaps = new HashMap<String, String>();
for(Enumeration<String> names = req.getParameterNames(); names.hasMoreElements();){
String name = names.nextElement();
parameterMaps.put(name, req.getParameter(name));
}
parameterList.add(parameterMaps);
map.put("parameters", parameterList);
String line = "";
// 获取请求体信息
// if (req.getMethod().equalsIgnoreCase("POST")) {
// int len = req.getContentLength();
// char[] buf = new char[len];
// int bufcount = requestWrapper.getReader().read(buf);
// if (len > 0 && bufcount <= len) {
// line = String.copyValueOf(buf).substring(0, bufcount);
// }
// } else if (req.getMethod().equalsIgnoreCase("GET")) {
int idx = req.getRequestURL().indexOf("?");
if (idx != -1) {
line = req.getRequestURL().substring(idx + 1);
} else {
line = null;
}
// }
if (line != null) {
map.put("Context", new String[] { line });
}
log.info("接收请求报文:\n"+ JSONObject.toJSONString(map));
chain.doFilter(request, response);
// 辞书
log.info("接收response报文:\n"+ response.getContentType());
}
@Override
public void destroy() {
}
}

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)