我正在开发一种Web应用程序,最近需要在其中记录一些用户活动。因此,自然问题是否使用Apache服务器日志记录机制是个好主意?如果答案是肯定的,请解释原因,如果没有,请解释。我主要担心的是由于在Apache中启用日志记录而导致性能下降。同样,为了能够在基于Web的应用程序中跟踪客户端活动,构建日志记录机制的最佳实践是什么?
答案 0 :(得分:1)
正如MaxVT所说,日志记录的开销不太可能影响性能。 Web应用程序中网络延迟的开销通常远远大于单个磁盘写入,可以是单个数字的微秒范围。
通常,基于Web的应用程序总是打开某种形式的日志记录,而基于mod_logger的日志在Apache中是一种非常便宜的方式。
答案 1 :(得分:0)
Apache只是将文本附加到日志文件中 - 这不会对性能造成太大影响。此外,您很可能已经启用了日志,因为这是安装在Web主机上的大多数统计软件包的工作方式(与基于Web的Google Analytics等不同)。
如果您有一台服务器,我将选择一个单独的日志文件。我喜欢将应用程序日志与Web服务器日志分开,因为这样更容易找到相关记录。
如果您有多个服务器并希望拥有一个公共日志,您可能需要查看syslogd等。将日志数据从应用程序服务器发送到单个日志记录计算机。
也可以在数据库中保存日志,但可能会导致数据库服务器出现大量负载,特别是如果您的应用程序已经依赖于缓存以保持较低的数据库负载。
答案 2 :(得分:0)
虽然apache日志记录的性能非常便宜,但您需要考虑日志的使用:
这些问题可以让您选择apache日志记录或基于DBMS的自定义日志记录。
使用自定义日志记录,您可以轻松构建事务日志,这些日志可以帮助您将整个系统从一种状态恢复到另一种状态,只需单击一下即可。
JRH