PHP异常处理之获取错误发生的所在行

PHP异常处理之获取错误发生的所在行

在异常被捕获之后,我们可以通过异常处理对象获取其中的异常信息,前面我们已经了解捕获方式,以及获取基本的错误信息。

在实际应用中,我们通常会获取足够多的异常信息,然后写入到错误日志中。

通过我们需要将报错的文件名、行号、错误信息、异常追踪信息等记录到日志中,以便调试与修复问题。

 

<?php
try {
    throw new Exception('wrong');
} catch(Exception $ex) {
$msg = "\n\n[".date('Y-m-d H:i:s',time()).']_Error:'.$ex->getMessage()."\n";
$msg.= $ex->getTraceAsString()."\n";
$msg.= '异常行号:'.$ex->getLine()."\n";
$msg.= '所在文件:'.$ex->getFile()."\n";
//将异常信息记录到日志中
file_put_contents('error_call'.date('Y-m-d',time()).'log', $msg, FILE_APPEND);

 }

 

 微信支付调试-log

tail -f dpay_2021-02.text

实时查看打印内容

chmod -r 777 

 

 

 

 

<?php


namespace App\Http\Controllers\Index\Index;


use App\Http\Controllers\Controller;

class PayController extends Controller
{
    /**
     * 问一问支付回调地址
     *
     * @author k.    (2021年2月22日 下午 08:11:55)
     */
    public function notify_wen()
    {
        $mkdir_path = 'log_test';
        if(!is_readable($mkdir_path))
        {
            is_file($mkdir_path) or mkdir($mkdir_path,0777);
        }

        $file_name = $mkdir_path.'/dpay_'.date('Y-m',time()).'.text';

        $msg = "\n\n\n\n\n\n".'__pay:('.date('Y-m-d H:i:s').")____________________start\n\n\n";
        file_put_contents($file_name, $msg, FILE_APPEND);

        //  ===================================================================

        $inputValue  = file_get_contents("php://input");
        $inputValueJson = json_encode(simplexml_load_string($inputValue, 'SimpleXMLElement', LIBXML_NOCDATA));

        file_put_contents($file_name, $inputValueJson, FILE_APPEND);



        $msg = "\n\n\n".'__pay:('.date('Y-m-d H:i:s').")____________________end\n\n";
        file_put_contents($file_name, $msg, FILE_APPEND);

        echo 'd-demo-d'.date('Y-m-d H:i:s').'==='.$mkdir_path;
        exit;
    }
}

 

 

echo '<xml> <return_code><![CDATA[SUCCESS]]></return_code> <return_msg><![CDATA[OK]]></return_msg> </xml>';

 

 

 

 

 

posted @ 2020-12-07 09:12  林间有风-邓  阅读(642)  评论(0编辑  收藏  举报