在代码中添加日志:开头

时间:2013-08-29 17:14:00

标签: php logging

我有一个网站正在运行,我想添加日志,以便能够监控是否在白天附加了一些错误。

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

以下是我的问题:

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

3 个答案:

答案 0 :(得分:1)

  

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

你基本上有三个选择:

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

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

  

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

框架可以为您提供帮助,因此您无需从头开始编写错误管理代码。

  

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

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

  

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

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

我个人使用这个功能

error_log();

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

中指定的任何位置