我将 spring mvc 与 tomcat servlet 容器一起用于 web 服务,并希望记录 API 的响应时间(总执行时间),那么是否有任何 spring 服务或者记录此类与 api 执行相关的信息的最佳方式是什么 Spring Controller 级别的时间。
最佳答案
随着浏览量的增加,这篇文章没有合适的答案,所以我想回答我的发现。因此,如果您同时使用 Spring 和 tomcat,则有两种方法。
方法一#
实现拦截器并在请求 preHandle
block 中的新参数 (requestReceivingTime) 中添加当前时间,并记录减去当前时间 和requestReceivingTime 在 postHandle
block 中。
方法二#
您可以使用 tomcat 访问日志来记录请求时间,您必须根据需要编辑 conf/server.xml
并更改格式。对于 exp
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%{X-Forwarded-For}i , %t Bytes sent: [%B] , Time taken millis: [%D] , Time taken seconds: [%T] "%r" %s" />
注意:模式可能会根据您的情况而改变,这取决于 tomcat 版本。
希望这会有所帮助!
关于java - 在 spring + tomcat 中记录 REST API 响应时间的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48490625/