一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術(shù)及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - 淺談Laravel中使用Slack進行異常通知

淺談Laravel中使用Slack進行異常通知

2021-11-17 15:59八重櫻 PHP教程

異常處理是軟件開發(fā)過程中無法逃避的問題。對于一套設(shè)計良好代碼高效的程序,出現(xiàn)異常的可能性會比較低,但這并不意味著不會出現(xiàn)異常,有些異常甚至會引起嚴重的后果,所以如何及時的發(fā)現(xiàn)程序中的異常并處理它便顯得十分

概述

通常,我們可以依靠用戶反饋、經(jīng)常查看程序日志來發(fā)現(xiàn)程序存在的問題。但這要么不可靠要么不及時,所以下面我們介紹一種比較有效的做法--使用 Slack 通知程序跑出的異常信息。

Slack 是一款即時通信軟件,類似于 QQ,它提供開放的 API,可以調(diào)用它向自己團隊中指定的個人或者頻道(Channel)發(fā)送消息,因此用它來進行異常通知是再合適不過的。

安裝 maknz/slack-laravel 包

具體的安裝方法請參考 Github 上的 [readme](https://github.com/maknz/slack-laravel)。

配置

安裝完成后使用 php artisan vendor:publish 生成 config\slack.php 配置文件,然后在.env文件中添加如下三項配置值.

SLACK_ENDPOINT=//slack 終端,即 slack 接口地址

SLACK_CHANNEL=//消息默認接收頻道

SLACK_USERNAME//消息默認接收人

> 當然,也可以直接直接在 config\slack.php 對應配置的默認值而不使用 .env,但并不推薦這樣做。

> 根據(jù)實際需要設(shè)置 SLACK_CHANNEL 和 SLACK_USERNAME ,二者并不是必須的

調(diào)整 AppExceptionsHandler 類的 report 方法

實現(xiàn) Slack 通知異常信息的邏輯。代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/**
 
 * Report or log an exception.
 
 *
public function report(Exception $e){
    if ($this->shouldReport($e)) {
        $slackMessage = "\n[Error.{$e->getCode()}] {$e->getMessage()}";
        $slackMessage.= "\n[Line.{$e->getLine()}] {$e->getFile()}";
        $slackMessage.= "\n[Time] ".date('Y-m-d H:i:s');
        try {
            Slack::to(config('slack.channel'))->send($slackMessage);
        } catch (\Exception $eOther) {
            \Log::info($slackMessage);
        }
    }
    return parent::report($e);
}

對于一些可能頻繁出現(xiàn)但又不致命的異常,例如404 NotFoundHttpException,我們可能并不想讓程序通知它。為此,我們只需要在 Aop\Exceptions\Handler 類里的 $dontReort 屬性中加入指定的異常的類型就可以了。

?
1
2
3
4
5
6
7
protected $dontReport = [
 
    NotFoundHttpException::class,
 
    // ...
 
];

示例中展示的是對指定的頻道(channel)發(fā)送信息,當然你還可以向指定的人發(fā)送,或者其它更復雜的用法。不過要注意指定的用戶名和頻道是自己 slack 團隊中已經(jīng)存在的,不然會出錯。

這樣,當程序中出現(xiàn)異常時,運維能在第一時間收到相關(guān)的通知信息,方便及時處理了。

以上就是淺談Laravel中使用Slack進行異常通知的詳細內(nèi)容,更多關(guān)于Laravel中使用Slack進行異常通知的資料請關(guān)注服務器之家其它相關(guān)文章!

原文鏈接:https://www.cnblogs.com/a609251438/p/12504096.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品久久久久久久久99热 | 日本加勒比在线精品视频 | 亚洲AV 日韩 国产 有码 | 九九久久国产精品免费热6 九九精品视频一区二区三区 | 亚洲乱码尤物193yw在线播放 | 亚洲欧美自偷自拍另类小说 | 亚洲欧美精品久久 | 欧美同志gaypronvideos | 国产精品香蕉 | 免费在线观看日本 | 高肉h护士办公室play | 调教扩张宫颈女人惨叫 | 交换性关系中文字幕6 | 成人黄色a级片 | 国产caonila在线观看 | 99国产小视频 | 国产一区二区精品 | 4tube欧美高清 | 久久水蜜桃亚洲AV无码精品偷窥 | 国产日韩免费视频 | 精品午夜中文字幕熟女人妻在线 | 猫影视tv接口 | 欧美成人福利 | 精久久 | daring国家队在线观看樱花动漫 | 欧美黑人成人免费全部 | 扒开女人下面使劲桶屁股动漫 | 日韩 视频在线播放 | 日本高清动作片www欧美 | 国产成人精品一区二区阿娇陈冠希 | 成人在线观看免费视频 | 99精品国产高清一区二区三区香蕉 | 超级乱淫寡妇 | 91久久精品青青草原伊人 | 深夜国产在线 | 性做久久久久久久久老女人 | 女同xx美女放 | 啪啪免费入口网站 | 国产成人精品在线观看 | 91精品免费观看老司机 | 日本在线www |