0

我有一个网站正在运行,我想添加日志以监控白天是否会出现一些错误。

我已经在 stackoverflow 和互联网上搜索了有关它的信息,并且有很多关于日志记录框架、记录什么的信息……但对于初学者来说,这很令人困惑。我不知道如何开始。

这是我的问题:

  • 如果我没有任何信息,我会创建一个 .txt 文件并file_put_contents在我的 PHP 代码中使用 .txt 文件catch {}。这个解决方案可能吗?如果不是,为什么?如果是,为什么每个人都使用框架?
  • 如果没有,你会推荐什么?
  • 你如何使用日志文件。你每天监控一次,每周两次吗?
  • 这个日志文件在服务器上的什么位置?在 www(公共)目录中?或其他地方?
4

3 回答 3

1

您的 php.ini 将有一个指定 PHP 将记录错误的日志文件。您的 Web 服务器(例如 Apache)也将有自己的日志文件来记录访问和错误。拥有自己的应用程序日志来记录您在一般操作中观察到的异常情况是完全可以的。

  1. 是的,拥有一个记录业务流程异常的文本文件是可以的。我建议制定一个日志记录标准。行将以时间戳开始,包括 [ERROR]、[WARNING] 或 [INFO] 消息,以便可以在 X 和 Y 次之间解析日志的类型或错误。正在使用框架是因为它们已经完成了许多内置方法(脚手架),因此您不必从头开始编写代码。框架还使其他开发人员更容易加入并开始以标准方式进行开发。看看这个关于为什么使用框架的答案。
  2. 如果框架有日志文件所在的默认位置,只要日志文件不向公众公开,我就会使用它
  3. 日志文件的监控/审计与日志记录不同。根据业务异常的关键性质,我会进行审计。例如,如果代码记录了客户正在尝试批量订购特定零件的警告,我会每隔一小时监控一次警告消息。我会每半小时监控一次错误(同样,取决于错误的严重性)。我宁愿隔夜审计,看看出了什么问题。更重要的是,最好有人负责处理这些问题。您可能会发现某些警告和错误不再那么重要或相关。在这些情况下,应该有人负责改进代码以删除此类日志。这样,您的日志就会显示相关且易于处理
  4. 该文件应位于 www 公共目录之外,并且不应通过 URL 公开。我更喜欢将日志完全存储在不同的驱动器上。
于 2013-08-29T17:36:34.110 回答
1

我个人使用此功能

error_log();

然后,我可以记录任何手动错误以及其他内容,例如未找到索引或解析错误等(不应该经常发生)。此函数将假定错误日志位于 php.ini 中指定的任何位置

于 2013-08-29T20:47:33.970 回答
1

如果我没有任何信息,我会创建一个 .txt 文件并在我的 PHP 代码中的 catch {} 中使用 file_put_contents。这个解决方案可能吗?如果不是,为什么?

您在这里基本上有三个选择:

  • 每次发生错误时向特定的电子邮件地址发送电子邮件。
  • 如您所述,在日志文件中收集错误消息。
  • 创建一个数据库并在其中记录您的错误消息。你可以有不同的严重级别,如果你愿意,可以构建一个广泛的日志后端。

就个人而言,这取决于您的应用程序的规模。对于中小型网页,我认为一个简单的日志文件就足够了。但是如果你有很多不同的错误并且愿意付出一些努力,我可以看到数据库解决方案的好处,特别是报告你的错误可能是一个有用的工具。

如果是,为什么每个人都使用框架?

框架可以帮助您,这样您就不必从头开始编写错误管理代码。

你如何使用日志文件。你每天监控一次,每周两次吗?

这里没有硬道理。我可能会同时使用两种方法。我会创建一个 cronjob 来收集最近的错误并每周通过电子邮件将这些错误发送到特定的电子邮件地址。收件人必须检查错误(可能只是一个摘要),并检查是否有任何异常。我还将实施一项服务来监视您的数据库/日志文件,并在出现异常错误消息时创建警报(例如以电子邮件的形式)。这样您就可以轻松监控错误峰值。

这个日志文件在服务器上的什么位置?在 www(公共)目录中?或其他地方?

我会将它们托管在网络服务器上,但不在公共目录中。

于 2013-08-29T17:31:07.720 回答