服务器端活动的异步日志记录

时间:2016-01-26 02:21:32

标签: asynchronous logging

我有一个Web服务器,在每个请求中都会生成一个应该永久保存在数据库中的日志。

由于请求率太高,我无法对每个请求进行数据库操作。

我想做以下事情:

  1. 对Web服务器的任何请求都会生成日志。
  2. 此日志放置在可以快速存储的地方(redis?)
  3. 另一项服务(cron作业?)定期刷新该地点的数据,删除重复项(是的,可能存在不需要存储在数据库中的重复项)并进行单个MySQL查询以保存数据永久。
  4. 实现这一目标的最有效方法是什么?

2 个答案:

答案 0 :(得分:0)

通常你会使用一个通用的日志库(例如log4j)来管理安全地将日志语句写入文件。但是,您应该注意日志详细程度仍然会影响应用程序性能。

文件在磁盘上后,您可以随意使用它 - 将该文件摄取到Splunk进行进一步处理和临时搜索/警报是完全正常的。

答案 1 :(得分:0)

如果您希望在此操作上获得更好的性能,则应将日志发送到某种队列并使用读取该队列的服务,将所有日志发送到数据库。 我在mysql中找到了一些关于队列的信息。 MySQL Insert Statement Queue 问候。