【问题标题】:Changing PHP error_log behaviour possible?可以更改 PHP error_log 行为吗?
【发布时间】:2013-11-11 03:02:01
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

标签: php apache logging error-handling error-logging


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2011-09-16
    • 1970-01-01
    • 2012-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多