在我的 springboot 应用程序中,我们使用 and 记录控制器请求/响应。有关示例代码,请参阅下面的链接。org.springframework.web.util.ContentCachingRequestWrapperorg.springframework.web.util.ContentCachingResponseWrapper
自定义日志过滤器 :
https://stackoverflow.com/a/42023374/1958669
在应用程序中有一个存在。现在的问题是在记录它的唯一拦截器名称时 className 。因此,为了获取实际控制器名称,我尝试在拦截器中获取类名。但这给出了.interceptororg.springframework.web.util.ContentCachingRequestWrapper
CustomWebMvcConfig :
@Configuration
public class CustomWebMvcConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new CustomLogInterceptor());
}
}
自定义日志接收器 :
public class CustomLogInterceptor extends HandlerInterceptorAdapter {
private static final Logger logger = LogManager.getLogger(CustomLogInterceptor.class);
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception{
//Some operation
}
}
获取以下格式的日志:
time=“2019-03-18T09:59:51,001Z”, thread=“[o-auto-1exec-]” ,class=“a.b.c.CustomLoggingFilter ”,message=“Payload_1”
time=“2019-03-18T09:59:51,001Z”, thread=“[o-auto-1-xec-1]” ,class=“a.b.c.CustomLoggingFilter ”,message=“Payload_2””
我的问题是如何在日志中获取实际的 ControllerClass 名称,而不是 LoggingFilterClass(一个使用org.springframework.web.util.ContentCachingRequestWrapper)
米脂
相关分类