当前位置: 首页 > 未分类>阅读正文

php抓取错误堆栈信息

2022.7.29 朱丰华 2445 次 留下评论 782字

函数debug_backtrace()可以取得错误堆栈信息

使用 try–catch 捕获错误,在 catch 中使用 该函数:

var_dump(debug_backtrace());

输出格式如:

Array (
     [0] => Array (
         [file] => C:\webfolder\test.php
         [line] => 6
         [function] => c
         [args] => Array (
             [0] => Cleveland
         )
     )
     [1] => Array (
         [file] => C:\webfolder\test.php
         [line] => 3
         [function] => b
         [args] => Array (
             [0] => Glenn
         )
     )
     [2] => Array (
         [file] => C:\webfolder\test.php
         [line] => 11
         [function] => a
         [args] => Array (
             [0] => Peter
         )
     )
 )

取得文件的位置和行号:

//跟踪错误堆栈,抓取报错的文件位置和行号
$trace = debug_backtrace();
$staceInfo = "";
foreach ($trace as $item){
    $staceInfo.=PHP_EOL.$item['file'].":".$item['line'];
}
echo $stackInfo;

输出结果:

D:\wwwroot\zfh.215000.com\include\common.func.php:13193
D:\wwwroot\zfh.215000.com\api\handlers\info.controller.php:369
D:\wwwroot\zfh.215000.com\index.php:1274

提示:使用堆栈的文件名列表+行号列表组合,生成md5(缩短一些)或直接作为唯一键值,则相同错误只记录一次(多次错误只更新最新错误日期),这样就不会因为重复触发而产生大量错误日志。

本篇完,还有疑问?留下评论吧

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注