lifuquan 03f547ce3f v1.0 20230525 | 1 年之前 | |
---|---|---|
src | 1 年之前 | |
.gitignore | 1 年之前 | |
README.md | 1 年之前 | |
pom.xml | 1 年之前 |
添加拦截器,打印所有的请求和返回值。
<dependency>
<groupId>com.nokia</groupId>
<artifactId>request-log-interceptor-starter</artifactId>
<version>1.0</version>
</dependency>
自行注入方式
// 引入配置类
@Configuration
public class RequestLogConfiguration implements WebMvcConfigurer {
/**
* 添加拦截器
*/
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 添加日志拦截器
registry.addInterceptor(new RequestLogHandlerInterceptor()).addPathPatterns("/**");
}
/**
* 注入自定义的RequestLogDispatcherServlet替代默认的DispatcherServlet
*/
@Bean
@Qualifier(DispatcherServletAutoConfiguration.DEFAULT_DISPATCHER_SERVLET_BEAN_NAME)
public DispatcherServlet dispatcherServlet() {
return new RequestLogDispatcherServlet();
}
}
配置方式(不推荐)
request:
log:
enable: true
spring:
main:
allow-bean-definition-overriding: true
注意,这里需要打开配置
spring.main.allow-bean-definition-overriding=true
,允许覆盖springbean,这样才能实现使用starter注入的DispatcherServlet替代默认的。这不是一种安全的做法,因此不建议使用。
实现了打印日志的功能,日志样式如下:
2023-05-25 18:26:44.649 INFO 9520 --- [nio-8080-exec-1] c.n.r.i.RequestLogHandlerInterceptor : 请求地址: http://127.0.0.1:8080/test POST,请求头: {content-length=0, host=127.0.0.1:8080, content-type=application/json, connection=close, accept-encoding=gzip, deflate, user-agent=vscode-restclient},请求参数:
2023-05-25 18:26:44.667 INFO 9520 --- [nio-8080-exec-1] c.n.r.i.RequestLogHandlerInterceptor : 耗时 18 ms, 返回 200: ===