代码之家  ›  专栏  ›  技术社区  ›  Artem Barger

记录基于Web的应用程序

  •  0
  • Artem Barger  · 技术社区  · 15 年前

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

    3 回复  |  直到 15 年前
        1
  •  1
  •   Avi    15 年前

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

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

        2
  •  0
  •   MaxVT    15 年前

    Apache只是在日志文件中添加文本——这并不是什么性能损失。此外,您很有可能已经启用了日志,因为这是安装在Web主机上的大多数统计数据包的工作方式(与基于Web的Google Analytics等不同)。

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

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

    保留登录数据库也是可能的,但可能会导致数据库服务器上的大量负载,特别是当应用程序已经依赖缓存来保持数据库负载较低时。

        3
  •  0
  •   jrharshath    15 年前

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

    1. 用户能看到“我的日志”吗?
    2. 是否需要基于日志进行“回滚”?
    3. 您记录的操作类型是否有相关数据?

    这些问题可以引导您选择Apache日志记录或基于DBMS的自定义日志记录。

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

    JRH