将日志添加到代码中:开始


Adding log to your code : The beginning

我有一个网站在工作,我想添加日志,以便能够监控白天是否会出现一些错误。

我在stackoverflow和互联网上搜索过,有很多关于日志框架的信息,要记录什么。。。但对于初学者来说,这是令人困惑的。我不知道该怎么开始。

以下是我的问题:

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

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

这里基本上有三个选项:

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

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

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

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

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

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

此日志文件将在服务器上的何处?在www(公共)目录中?还是其他地方?

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

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

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

我个人使用这个函数

error_log();

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