0

我想知道是否可以更改 PHP 的 error_log() 功能的默认行为以默认包含源和原始行号。

我猜这可能是通过 PHP ini 设置或通过以某种特定方式配置 apache 来完成的,虽然我不是 apache 专家,但我不确定这将如何实现。

在我的默认环境中,在日志中查找错误的来源通常不会造成太大的问题,因为错误是由 PHP 警告或通知合法产生的,因为它会自动报告行的来源......但是,程序员手动对 PHP error_log() 的调用不会这样做,而且我找不到使这种行为默认的方法。

我知道,一般来说,您可以使用如下魔术常量手动实现行报告:

error_log("Failed to login to MySQL ".__LINE__);

但是,我很好奇并愿意接受有关是否有任何方法可以配置在日志中普遍报告错误的方式或其他任何方法来绕过更改代码中的每个调用以包含魔术常数的建议。

4

1 回答 1

2

您可以使用set_error_handler函数定义自己的错误处理程序。这允许您随意处理错误,只要它在 PHP 语言的范围内(包括打印发生错误的文件和行)。在这种情况下,最常见的做法是将错误转换为ErrorException

您还可以使用xDebug 之类的工具,当在 php.ini 中激活这些工具时,会以更易读的形式显示错误。

于 2013-10-31T07:54:03.687 回答