我正在我的应用程序中构建一个基本的错误日志记录功能,我只记录一条自定义消息,如“产品 ID 丢失”,并将其记录在数据库中。有什么方法可以动态捕获从哪个类或函数触发错误(即调用 log_error() 的函数)或行号?
最佳答案
从 PHP 5.2.0 开始,有 error_get_last() . (干杯@Gordon)它会给你一个数组,其中包含关于最后一个错误的所有信息:
Array
(
[type] => 8
[message] => Undefined variable: a
[file] => C:\WWW\index.php
[line] => 2
)
通常更灵活的处理错误的方法是定义一个 custom error handler .
自定义错误处理程序接受以下参数:
handler ( int $errno, string $errstr [, string $errfile
[, int $errline [, array $errcontext ]]] )
回溯 您将通过回溯获得的最多信息 - 在许多情况下很有用。为此,将错误处理程序与 debug_backtrace() 结合使用.它将为您提供一个数组,其中包含调用堆栈中的每个点(即哪个函数调用哪个调用哪个调用哪个......直到错误。)
堆栈跟踪会占用大量计算时间,因此您不应该在生产中使用它们并且应该有一个开关来打开和关闭它们。
关于PHP 捕获行号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2346990/