记录基于Web的应用程序

时间:2009-06-18 07:11:03

标签: apache logging

我正在开发一种Web应用程序,最近需要在其中记录一些用户活动。因此,自然问题是否使用Apache服务器日志记录机制是个好主意?如果答案是肯定的,请解释原因,如果没有,请解释。我主要担心的是由于在Apache中启用日志记录而导致性能下降。同样,为了能够在基于Web的应用程序中跟踪客户端活动,构建日志记录机制的最佳实践是什么?

3 个答案:

答案 0 :(得分:1)

正如MaxVT所说,日志记录的开销不太可能影响性能。 Web应用程序中网络延迟的开销通常远远大于单个磁盘写入,可以是单个数字的微秒范围。

通常,基于Web的应用程序总是打开某种形式的日志记录,而基于mod_logger的日志在Apache中是一种非常便宜的方式。

答案 1 :(得分:0)

Apache只是将文本附加到日志文件中 - 这不会对性能造成太大影响。此外,您很可能已经启用了日志,因为这是安装在Web主机上的大多数统计软件包的工作方式(与基于Web的Google Analytics等不同)。

如果您有一台服务器,我将选择一个单独的日志文件。我喜欢将应用程序日志与Web服务器日志分开,因为这样更容易找到相关记录。

如果您有多个服务器并希望拥有一个公共日志,您可能需要查看syslogd等。将日志数据从应用程序服务器发送到单个日志记录计算机。

也可以在数据库中保存日志,但可能会导致数据库服务器出现大量负载,特别是如果您的应用程序已经依赖于缓存以保持较低的数据库负载。

答案 2 :(得分:0)

虽然apache日志记录的性能非常便宜,但您需要考虑日志的使用:

  1. 用户是否能够看到“我的日志”?
  2. 您是否需要根据日志“回滚”?
  3. 您记录的操作类型是否具有相关数据?
  4. 这些问题可以让您选择apache日志记录或基于DBMS的自定义日志记录。

    使用自定义日志记录,您可以轻松构建事务日志,这些日志可以帮助您将整个系统从一种状态恢复到另一种状态,只需单击一下即可。

    JRH