亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

laravel5異常及時通知

發布時間:2020-06-18 23:46:20 來源:網絡 閱讀:1482 作者:ttlxihuan 欄目:開發技術

項目上線后,都會使用一些異常監控,當然很多時候監控是有限制的,比如要監控PHP異常,類似這種一般都在輸出人性化內容而不是直接輸出錯誤內容,很多時候需要捕捉這類異常來進行代碼調整。當然也可以定期去查看日志。


laravel5支持自定義異常處理,給這種需求提供了方便,我們完全可以擴展異常處理,通過發送郵件或短信。

打開 app/Exceptions/Handler.php  文件,修改 render 函數代碼,增加發送郵件通知功能:

if (!$e instanceof \Symfony\Component\Debug\Exception\FlattenException) {
    $e = \Symfony\Component\Debug\Exception\FlattenException::create($e);
}
$exception = new \Symfony\Component\Debug\ExceptionHandler();
$content = $exception->getContent($e);
$css = $exception->getStylesheet($e);
\Mail::queue('errors.mail', [
    'url' => $request->fullUrl(),
    'request' => $request->all(),
    'method' => $request->getMethod(),
    'header' => $request->header(),
    'content' => $content,
    'css' => $css
        ], function ($message) {
    $message->to('name@admin.com')
            ->cc('name1@admin.com')
            ->subject('程序異常');
});

原來的

return parent::render($request, $e);

是返回異常內容或403頁面的,如果想頁面返回更友好,可以去掉這個代碼改成其它內容返回,可直接使用如形式的代碼:

return response('服務器累了,稍后再試!');


郵件模板:

<HTML>
    <HEAD>
        <TITLE>系統異常,請及時維護!</TITLE>
        <meta http-equiv="content-type" content="text/html; charset=utf-8">
        <STYLE>
            html{color:#000;background:#FFF;}
            body,div,dl,dt,dd,ul,ol,li,h2,h3,h4,h5,h6,h7,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;}
            table{border-collapse:collapse;border-spacing:0;}
            fieldset,img{border:0;}
            address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}
            li{list-style:none;}caption,th{text-align:left;}
            q:before,q:after{content:'';}
            abbr,acronym{border:0;font-variant:normal;}
            sup{vertical-align:text-top;}
            sub{vertical-align:text-bottom;}
            input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;}
            input,textarea,select{*font-size:100%;}
            legend{color:#000;}
            html { background: #eee; padding: 10px }
            img { border: 0; }
            #sf-resetcontent { width:970px; margin:0 auto; }
            {!!$css!!}
        </style>
    </HEAD>
    <BODY>
        <h3>請求地址:</h3>
        {{$url}} &nbsp;&nbsp;&nbsp;
        <h3>請求方式:</h3>
        {{$method}}
        <h3>請求參數:</h3>
        <pre>
            {{var_export($request, true)}}
        </pre>
        <h3>請求頭信息:</h3>
        <pre>
            {{var_export($header, true)}}
        </pre>
        <h3>異常內容:</h3>
        <pre>
            {!!$content!!}
        </pre>
    </BODY>
</HTML>


注意:郵件是通過隊列發送的,以減少頁面響應速度,實際使用時需要開啟隊列處理命令。


開啟隊列處理命令方法:

  1. 直接添加定時命令到 crontab

    crontab -e
    * * * * * php artisan queue:work 1>> /dev/null 2>&1  #啟動隊列監聽
  2. 寫到框架的 schedule 中,然后通過 schedule 模擬crontab定時處理內部所有命令

    打開 app/Console/Kernel.php 文件在 schedule 函數下添加代碼:

    //監聽隊列

    $schedule->command('queue:work',$parameters)
        ->everyMinute()
        ->withoutOverlapping();

    然后添加定時命令:

    crontab -e
    * * * * * php artisan schedule:run 1>> /dev/null 2>&1   #啟動schedule


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沭阳县| 甘孜| 汉源县| 合水县| 曲麻莱县| 泸定县| 宣恩县| 涟水县| 金乡县| 阳谷县| 庆城县| 弋阳县| 福泉市| 姜堰市| 县级市| 龙游县| 花垣县| 开远市| 东丽区| 岳阳县| 岳池县| 遵义市| 张掖市| 崇礼县| 晋中市| 屏东县| 昌吉市| 博湖县| 犍为县| 宜昌市| 通州市| 时尚| 大港区| 玉树县| 日土县| 株洲县| 东至县| 美姑县| 金寨县| 八宿县| 营口市|