【问题标题】:Tracking calls to java servlet跟踪对 java servlet 的调用
【发布时间】:2013-08-19 02:00:28
【问题描述】:

我正在运行一个小的 web api,并希望包含一些用于调试目的的日志记录方法。因此,我想包含返回信息的 http 调用,例如“每小时 api 调用”、“成功调用与未成功调用”等。

我搜索了互联网,但没有找到有关该主题的大量信息。任何人都可以为我提供一个很好的来源或策略吗?

【问题讨论】:

  • 您可以使用Filter 和自定义计数器/监视器来实现此功能。
  • @SotiriosDelimanolis 我不会轻易放弃的。虽然Filter 将在进程链中的 servlet 之前获得,但计数器不容易维护,请记住过滤器和 servlet 都在多线程环境中使用。更多信息:How do servlets work? Instantiation, session variables and multithreading.
  • @LuiggiMendoza 是的。这绝不是一件容易的事。对于 OP,这种类型的数据在OAM 中很有用。您可以在内存中维护(存在所有同步问题)计数器(坏),也可以在数据库中执行并让它处理它。

标签: java api tomcat servlets web-applications


【解决方案1】:

您可以使用 servlet 过滤器来记录统计信息。 Here's an example.

【讨论】:

  • 提供的链接有两个问题: 1) 它没有为每个支持多线程的 servlet 实例(或 URL)提供计数器。 2) 要测量实时性能,您必须使用System.nanoTime 而不是System.currentTimeMillis,因为前者更准确。
  • 谢谢。这个链接作为一个脚手架似乎真的很有帮助。
猜你喜欢
  • 1970-01-01
  • 2010-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-28
  • 2012-04-19
  • 2018-12-31
  • 2013-04-12
相关资源
最近更新 更多