Web服务的快速顺序日志记录

时间:2012-05-25 11:37:55

标签: php javascript mysql logging

我的网络服务结构如下:

  1. 接收请求
  2. 解析并验证输入
  3. 做实际的webservice
  4. 验证输出
  5. 我主要使用日志记录进行调试,如果出现问题,我想知道请求是什么,所以我希望能够重现它(即发送完全相同的请求)。

    目前我正在登录MySQL数据库表。 1.创建一条记录,在2.和3.之后用更多信息更新,并在4之后清理。(修剪成功请求的日志)。

    我希望日志记录尽可能快速,轻松。这里的任何加速都将大大提高整体性能(每次请求的往返)。

    我正在考虑使用INSERT DELAYED,但我不能这样做,因为我需要LAST_INSERT_ID更新并稍后删除日志记录,或者至少记录请求的状态(即。成功或错误)所以我知道何时修剪。

    我自己可以生成一个唯一的ID(或者至少是一个'足够独特'的id),但即使这样,我也不会知道DELAYED语句的顺序,我可能最终会尝试更新或删除记录尚不存在。由于DELAYED也删除了使用NUM_AFFECTED_ROWS的功能,因此我无法检查查询是否有效。

    有什么建议吗?

2 个答案:

答案 0 :(得分:0)

当你说修剪我假设你是否成功删除记录?如果是这样的话,我认为如果你有一个Java对象存储信息而不是数据库,那么你会更好,因为当进程展开时,如果发生异常,你将对象中的信息一次性记录到数据库中。

如果你想进一步,我做了类似的事情,我有一个服务,排队审计数据的记录,并以稳定的速度插入信息,所以如果服务受到重创,不会堵塞数据库记录语句,但是如果您唯一的记录错误可能是过度杀伤。

答案 1 :(得分:0)

我想我可能只做REPLACE DELAYED并在其他时间进行修剪。 (使用DELETE DELAYED)。