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>';