昨天发现了 可以通过 spring 的 容器 监听器,来 获取请求的信息,可以通过这个讲请求的信息使用日志来保存下来。 一般我们记录请求信息,可以用 aop , springmvc 拦截器,过滤器等其他相关的。。。 现在也可以使用 监听器的 方式来记录了。
package com.stylefeng.guns.core.listener;
import org.springframework.context.ApplicationListener;
import org.springframework.stereotype.Component;
import org.springframework.web.context.support.ServletRequestHandledEvent;
/**
* 监听 spring MVC 请求
* @author oumin
*
*/
@Component
public class ServletRequestHandledEventListener implements ApplicationListener<ServletRequestHandledEvent>{
@Override
public void onApplicationEvent(ServletRequestHandledEvent event) {
// TODO Auto-generated method stub
System.out.println("请求相关信息==="+event.getDescription());
System.out.println("访问路径==="+event.getRequestUrl());
System.out.println("请求系统响应花费时间==="+event.getProcessingTimeMillis());
System.out.println("请求发生时间==="+event.getTimestamp());
System.out.println("请求失败原因异常==="+event.getFailureCause());
System.out.println("请求响应HTTP状态值==="+event.getStatusCode());
}
}
结果例子:
请求相关信息===url=[/test/say]; client=[0:0:0:0:0:0:0:1]; method=[GET]; servlet=[dispatcherServlet]; session=[0864031f-afe5-4bba-a246-dee01a180082]; user=[null]; time=[103ms]; status=[OK]
访问路径===/test/say
请求系统响应花费时间===103
请求发生时间===1502756571238
请求失败原因异常===null
请求响应HTTP状态值===200