2009-06-18 55 views
0

我正在开发一种Web应用程序,并在不久前来到一个需要记录一些用户的活动中吧。因此,自然而然的问题是,使用Apache服务器日志记录机制是一个好主意吗?如果答案是肯定的,请解释为什么等等。我主要担心的是由于在Apache中启用日志记录而导致性能下降。另外,为了能够跟踪基于Web的应用程序中的客户端活动,建立日志记录机制的最佳实践是什么?登录基于web的应用

+0

嗨@artem你是如何实现最终的日志记录机制..难道你把所有的日志数据库监视用户活动.. – 2013-03-27 19:39:57

回答

1

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

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

0

Apache是​​简单的文本追加到一个日志文件 - 这是没有太大的性能损失。此外,您已经有很好的机会启用日志,因为这就是大多数安装在Web主机上的统计数据包的工作方式(不像基于Web的Google Analytics等)。

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

如果你有多个服务器,并希望有一个共同的日志,你可能要考虑的syslogd等。将日志数据从您的应用程序服务器发送到单个日志记录机器。

保持一个日志数据库也是可能的,但可能会导致数据库服务器上的负载显著,特别是如果你的应用程序已经依赖于缓存保持数据库负载低。

+0

右Apache是​​简单的文本追加到日志文件,至于我这是开销,因为涉及到磁盘IO,并且对于大量用户而言,它可能会降低服务器的性能,不是吗? – 2009-06-18 07:32:00

0

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

  1. 将用户能够看到“我的日志”?
  2. 基于日志需要“回滚”吗?
  3. 您记录的行为是否具有相关数据?

这些问题可能会导致您选择apache日志记录或基于DBMS的自定义日志记录。

使用自定义日志,你可以轻松地构建事务日志,可以帮助你从一个状态恢复你的整个系统到另一个尽可能多的点击。

JRH