Spring启动应用程序:http响应时间为负值



我根据该技术开发了一个web应用程序。

  1. 弹簧套(欠流启动器(:1.4.2
  2. Java 7
  3. 操作系统:Centos
  4. Servlet筛选器:org.spring.web.Filter.OncePerRequestFilter

在步骤4中,过滤器用于打印http请求/响应信息日志。这些数据包括:

  • (a(http url
  • (b( 请求正文
  • (c( 响应机构
  • (d( 响应时间

(d(响应时间出现问题。然而,大多数响应时间都可以。但对于少数http请求和响应,我发现日志的响应时间为负(例如-1024毫秒(。

在这里,我在Servlet Filter 中手动计算了http响应时间

protected void doFilterInternal(...){
long startTime = System.currentTimeMillis();
..
some code
filterChain.doFilter(httpRequest,httpResonse);
...
long endTime = System.currentTimeMillis();
long responseTime = endTime  - startTime
log.debug(responseTIme); [SLF4J logger,logback.xml]
}

我使用了谷歌番石榴库的StopWatch api,它使用System.nanoTime((,java时间api。

https://github.com/google/guava/blob/master/guava/src/com/google/common/base/Stopwatch.java

import com.google.common.base.Stopwatch;
import java.util.concurrent.TimeUnit;

Stopwatch stopwatch = new Stopwatch();
stopwatch.start();
... 
do some code
....
stopwatch.stop();
long value = stopwatch.elapsedTime(TimeUnit.MICROSECONDS);

它帮助我解决问题

谢谢@flopcoder@Jim Garrison

相关内容

  • 没有找到相关文章

最新更新