PHP代码运行异常通知

  • A+
所属分类:PHP

昨天线上代码出现了一些小问题,被运营代理那边发现问题,还好报错的代码行数在关键的业务代码下边,只是造成了一点小影响不妨碍整体业务(万幸)。

经过这次事情我感觉得写个用来告警的代码,包裹一下对外的接口部分

class CodeError{

    private $error_file;//异常文件
    private $error_line;//异常行数
    private $error_message;//异常内容


    /**
     * @param \Exception $exception
     */
    public function __construct(\Exception $exception){
        $this->error_line=$exception->getLine();
        $this->error_file=$exception->getFile();
        $this->error_message=$exception->getMessage();

    }
    
    /**
     * 代码异常处理
     * @param $exception
     * @return void
     */
    public function handle_error(){

        $loginNotice=new LoginNotice();
        $result=$loginNotice->Login_notice_show();
        $queue = 'send-mail';
        $data = [
            "type"=>"code_error",//发送类型,代码错误
            "send_email"=>$result['send_email'],
            "smtp_code"=>$result['smtp_code'],
            "email"=>$result['email'],
            "error_file"=>$this->error_file,
            "error_line"=>$this->error_line,
            "error_message"=>$this->error_message
        ];


        //使用消息队列发送错误代码信息
        Client::send($queue, $data);

    }

}

在接口部分用try….catch包裹,然后初始化CodeError类将异常对象$exception传入即可

然后在自行定义一个邮件通知类,用队列的方式进行邮件发送即可

    /***
                        _ooOoo_
                       o8888888o
                       88" . "88
                       (| -_- |)
                       O\  =  /O
                    ____/`---'\____
                  .'  \\|     |//  `.
                 /  \\|||  :  |||//  \
                /  _||||| -:- |||||-  \
                |   | \\\  -  /// |   |
                | \_|  ''\---/''  |   |
                \  .-\__  `-`  ___/-. /
              ___`. .'  /--.--\  `. . __
           ."" '<  `.___\_<|>_/___.'  >'"".
          | | :  `- \`.;`\ _ /`;.`/ - ` : | |
          \  \ `-.   \_ __\ /__ _/   .-` /  /
     ======`-.____`-.___\_____/___.-`____.-'======
                        `=---='
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
              佛祖保佑       永无BUG
     */

最后希望大家写的代码都无bug

这里的消息队列,请参考webman框架消息队列

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: