国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

在 Laravel 中使用 Slack 進(jìn)行異常通知

imccl / 1714人閱讀

摘要:是一款即時(shí)通信軟件,類似于,它提供開(kāi)放的,可以調(diào)用它向自己團(tuán)隊(duì)中指定的個(gè)人或者頻道發(fā)送消息,因此用它來(lái)進(jìn)行異常通知是再合適不過(guò)的。這樣,當(dāng)程序中出現(xiàn)異常時(shí),運(yùn)維能在第一時(shí)間收到相關(guān)的通知信息,方便及時(shí)處理了。

異常處理是軟件開(kāi)發(fā)過(guò)程中無(wú)法逃避的問(wèn)題。對(duì)于一套設(shè)計(jì)良好代碼高效的程序,出現(xiàn)異常的可能性會(huì)比較低,但這并不意味著不會(huì)出現(xiàn)異常,有些異常甚至?xí)饑?yán)重的后果,所以如何及時(shí)的發(fā)現(xiàn)程序中的異常并處理它便顯得十分重要了。

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

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

安裝 maknz/slack-laravel 包

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

配置

安裝完成后使用 php artisan vendor:publish 生成 configslack.php 配置文件,然后在.env文件中添加如下三項(xiàng)配置值.

```
SLACK_ENDPOINT=//slack 終端,即 slack 接口地址
SLACK_CHANNEL=//消息默認(rèn)接收頻道
SLACK_USERNAME//消息默認(rèn)接收人
```
> 當(dāng)然,也可以直接直接在 configslack.php 對(duì)應(yīng)配置的默認(rèn)值而不使用 .env,但并不推薦這樣做。

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

調(diào)整 AppExceptionsHandler 類的 report 方法,實(shí)現(xiàn) Slack 通知異常信息的邏輯。代碼如下:

/**
 * Report or log an exception.
 *
 * This is a great spot to send exceptions to Sentry, Bugsnag, etc.
 *
 * @param  Exception  $e
 * @return void
 */
public function report(Exception $e)
{
if ($this->shouldReport($e)) {
    $slackMessage = "
[Error.{$e->getCode()}] {$e->getMessage()}";
    $slackMessage.= "
[Line.{$e->getLine()}] {$e->getFile()}";
    $slackMessage.= "
[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);
}

對(duì)于一些可能頻繁出現(xiàn)但又不致命的異常,例如404 NotFoundHttpException,我們可能并不想讓程序通知它。為此,我們只需要在 AopExceptionsHandler 類里的 $dontReort 屬性中加入指定的異常的類型就可以了。
    protected $dontReport = [
        NotFoundHttpException::class,
        // ...
    ];

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

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

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/23313.html

相關(guān)文章

  • Laravel Telescope:優(yōu)雅的應(yīng)用調(diào)試工具

    摘要:文章轉(zhuǎn)自視頻教程優(yōu)雅的應(yīng)用調(diào)試工具新擴(kuò)展是由和開(kāi)源的應(yīng)用的調(diào)試工具。計(jì)劃任務(wù)列出已運(yùn)行的計(jì)劃任務(wù)。該封閉函數(shù)會(huì)被序列化為一個(gè)長(zhǎng)字符串,加上他的哈希與簽名如出一轍該功能將記錄所有異常,并可查看具體異常情況。事件顯示所有事件的列表。 文章轉(zhuǎn)自:https://laravel-china.org/topics/19013視頻教程:047. 優(yōu)雅的應(yīng)用調(diào)試工具--laravel/telesco...

    MasonEast 評(píng)論0 收藏0
  • Laravel 5.8 前瞻

    摘要:發(fā)布于年月,從那時(shí)起大約每六個(gè)月會(huì)發(fā)布一次的新版本。將會(huì)支持相對(duì)較新的來(lái)管理項(xiàng)目中的環(huán)境文件。棄用和輔助函數(shù)所有的和全局輔助函數(shù)都已棄用,將在中刪除。將返回更干凈的相同值。和通知和通知已從主項(xiàng)目中刪除,并提取到第三方軟件包中。 showImg(https://segmentfault.com/img/remote/1460000018269419?w=585&h=400); 無(wú)論是從零...

    tianhang 評(píng)論0 收藏0
  • Laravel 事件系統(tǒng)用法總結(jié)

    摘要:事件類保存在目錄中,而這些事件的的監(jiān)聽(tīng)器則被保存在目錄下。這些目錄只有當(dāng)你使用命令來(lái)生成事件和監(jiān)聽(tīng)器時(shí)才會(huì)被自動(dòng)創(chuàng)建。事件機(jī)制是一種很好的應(yīng)用解耦方式,因?yàn)橐粋€(gè)事件可以擁有多個(gè)互不依賴的監(jiān)聽(tīng)器。參考鏈接事件系統(tǒng)隊(duì)列原文地址 Laravel 的事件提供了一個(gè)簡(jiǎn)單的觀察者實(shí)現(xiàn),能夠訂閱和監(jiān)聽(tīng)?wèi)?yīng)用中發(fā)生的各種事件。事件類保存在 app/Events 目錄中,而這些事件的的監(jiān)聽(tīng)器則被保存在 a...

    Big_fat_cat 評(píng)論0 收藏0
  • [Laravel 5.3] Notification 個(gè)人理解,及 BearyChat Channe

    摘要:提供了一種全新的發(fā)送通知的方式。個(gè)人理解是可以基于某事件操作觸發(fā)一系列的通知任務(wù),而通知方式由通知渠道接管,這樣使得通知或推送邏輯更抽象,更易于管理和重構(gòu)。在之前,我是利用的來(lái)完成這一系列通知。使用的配置文件還是原來(lái)的,無(wú)需重新配置。 Laravel Notification Laravel 5.3 提供了一種全新的發(fā)送通知的方式:Notification 。個(gè)人理解是可以基于某事件(...

    Yang_River 評(píng)論0 收藏0
  • Laravel 5.3 預(yù)熱:10 個(gè)你需要知道的變更

    摘要:本文經(jīng)授權(quán)轉(zhuǎn)自社區(qū)說(shuō)明發(fā)布臨近,大體構(gòu)建已經(jīng)完成,文檔整理完成后即可發(fā)布。附帶了一個(gè)響應(yīng)式郵件模板,通知類中唯一需要做的就是像下面這樣發(fā)送消息錯(cuò)誤處理是一個(gè)可選的擴(kuò)展包,提供了完整可用的服務(wù)。 本文經(jīng)授權(quán)轉(zhuǎn)自 PHPHub 社區(qū) 說(shuō)明 Laravel 5.3 發(fā)布臨近,大體構(gòu)建已經(jīng)完成,文檔整理完成后即可發(fā)布。 下面是對(duì) Laravel 5.3 新特性的整理,不完整列表。 1、全文搜...

    沈建明 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<