接口
Controller接口调试
打印Controller接口的请求参数、请求Header和响应结果
1 2 3 4 5 6
| spring: mvc: log-request-details: true logging: level: web: TRACE
|
加上 log-request-details 这个才不会被打码.
统计接口耗时
AOP
优点:代码解耦,复用性强,易于维护。
缺点:可能增加系统复杂度,性能略有损耗(毕竟要生成代理)。
拦截器
优点:与Spring MVC等框架集成好,实现简单。
缺点:只能用于Web层,不能跨应用层。
性能监控工具
优点:功能全面,可视化强,易于分析。
缺点:可能引入外部依赖,成本较高。
可以使用 Listener 实现简单的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| @Component public class TimeCountListener implements ApplicationListener<ServletRequestHandledEvent> {
@Override public void onApplicationEvent(ServletRequestHandledEvent event) { Throwable failureCause = event.getFailureCause() ; if (failureCause != null) { System.err.printf("错误原因: %s%n", failureCause.getMessage()) ; } System.err.println("========================================") ; System.err.printf("请求客户端地址:%s\n请求URL: %s\n请求Method: %s\n请求耗时: %d毫秒%n", event.getClientAddress(), event.getRequestUrl(), event.getMethod(), event.getProcessingTimeMillis()); System.err.println("========================================") ; } }
|