PHP错误日志跟踪记录register_shutdown_function/set_error_handler/set_exception_handler

写程序不可避免有错误,而调试错误就很重要了,需要看错误信息,错误发生的文件、行号等,特别是对于线上的系统调试,不能让用户看到错误信息,这就需要把错误信息记录日志里。除了使用try catch,还可以使用set_error_handler

// 定义PHP程序执行完成后执行的函数
register_shutdown_function(['Debug', 'fatalError']);

// 设置一个用户定义的错误处理函数
set_error_handler(["Debug", "appError"]);

//自定义异常处理。
set_exception_handler(['Debug', 'appException']);

下面简单写了一段错误记录的小程序。

<?php
function myErrorHandler($errno, $errstr, $errfile, $errline){
    $f = fopen("log.txt", "a");
    fwrite($f, $errno."\n".$errstr."\n".$errfile."\n".$errline."\n");
    fwrite($f, var_export(debug_backtrace(), true));
    fclose($f);
    // error_log($errstr);
    // 返回true 在前端不报错,返回false就会在前端报错
    return true;
}

// 设置错误处理函数
set_error_handler("myErrorHandler", E_ALL);

// 测试
function fe() {
    $a = 1/0;
    for($i=0;$i<10;$i++) {
        echo($i."<br/>");
    }
    return 0;
}
fe();

参考:
http://php.net/manual/zh/book.errorfunc.php
http://php.net/manual/zh/ref.funchand.php

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小龙在山东

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值