摘要:修改在方法中添加如下代碼就可以了日志機(jī)器人好了,在代碼中故意寫個(gè)錯(cuò)誤,看看收到錯(cuò)誤日志了。如果覺得本篇文章對(duì)您十分有益,何不打賞一下
本文最早發(fā)表于本人博客: 制作一個(gè)BearyChat的Laravel項(xiàng)目錯(cuò)誤日志通知機(jī)器人
Laravel 集成?Monolog?來做日志處理,Monolog非常強(qiáng)大,也容易擴(kuò)展,其實(shí)它本身已經(jīng)支持很多Handler了,你可以把日志發(fā)送到郵件或者其他日志收集服務(wù)器或者系統(tǒng)中,因?yàn)槲覀儓F(tuán)隊(duì)使用Bearychat 作為團(tuán)隊(duì)溝通工具,所以把Laravel項(xiàng)目的實(shí)時(shí)錯(cuò)誤日志推送到Bearychat的一個(gè)討論組中,方便組員迅速發(fā)現(xiàn)異常和解決問題 ,其實(shí)很簡(jiǎn)單沒多少行代碼就搞定了。
首先創(chuàng)建BearyChatHandler
data["channel"] = $channel; $this->webhook = $webhook; parent::__construct($level, $bubble); } /** * {@inheritDoc} */ protected function write(array $record) { $postData = [ "text" => $record["datetime"]->format("Y-m-d H:i:s") . "-" . $record["level"] . "-" . $record["level_name"], "markdown" => false, "notification" => "Laravel Error Log", "attachments" => [ [ "title" => current(preg_split("/([. ]+)/i", $record["message"])), "text" => $record["message"], "color" => "#ffa500" ] ] ]; $postString = json_encode(array_merge($this->data, $postData)); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $this->webhook); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $postString); curl_setopt($ch, CURLOPT_HTTPHEADER, array( "Content-Type: application/json" )); CurlUtil::execute($ch); } }
只要繼承AbstractProcessingHandler,重寫write方法就可以了,write中向Bearychat的webhook地址POST數(shù)據(jù)就可以了,$record是Monolog記錄日志的詳情
創(chuàng)建一個(gè)BearyChat組用來接受通知
新建討論組,比如叫"Laravel錯(cuò)誤日志報(bào)告"
添加機(jī)器人到討論組,點(diǎn)擊Incoming添加一個(gè)比如叫"Laravel日志機(jī)器人",發(fā)送目標(biāo)選擇上一步建的"Laravel錯(cuò)誤日志報(bào)告",這樣就獲取了webhook的URL地址了
把相應(yīng)的人員加到這個(gè)討論組
集成ChearyChatHandler
官方手冊(cè)上講到,你像這樣完全控制Monolog
Custom Monolog ConfigurationIf you would like to have complete control over how Monolog is configured for your application, you may use the application"s?configureMonologUsing?method. You should place a call to this method in your?bootstrap/app.php?file right before the?$app?variable is returned by the file:
$app->configureMonologUsing(function($monolog) {
$monolog->pushHandler(...);
});return $app;
但是我們除了發(fā)送到ChearyChat以外還要保留默認(rèn)的記錄到log文件的方式,所以我們不這樣做,我們只要在?Exception Handler的地方添加一個(gè)我們的ChearyChatHandler就可以了。
修改app/Exceptions/Handler.php,在report方法中添加如下代碼就可以了:
pushHandler(new BearyChatHandler("https://yourhookurl","Laravel日志機(jī)器人")); return parent::report($e); } ...... }
好了,在代碼中故意寫個(gè)錯(cuò)誤,看看BearyChat收到錯(cuò)誤日志了。
如果覺得本篇文章對(duì)您十分有益,何不 打賞一下
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/21617.html
摘要:提供了一種全新的發(fā)送通知的方式。個(gè)人理解是可以基于某事件操作觸發(fā)一系列的通知任務(wù),而通知方式由通知渠道接管,這樣使得通知或推送邏輯更抽象,更易于管理和重構(gòu)。在之前,我是利用的來完成這一系列通知。使用的配置文件還是原來的,無需重新配置。 Laravel Notification Laravel 5.3 提供了一種全新的發(fā)送通知的方式:Notification 。個(gè)人理解是可以基于某事件(...
摘要:后臺(tái)經(jīng)常需要給管理員老板運(yùn)營(yíng)推送一些事件消息,比如有用戶購買了報(bào)錯(cuò)服務(wù)器流量預(yù)警有新的評(píng)論收到新的意見反饋今日超過等等。 后臺(tái)經(jīng)常需要給管理員/老板/運(yùn)營(yíng)推送一些事件消息,比如有用戶購買了VIP、PHP 報(bào)錯(cuò)、服務(wù)器流量預(yù)警、App Store 有新的評(píng)論、收到新的意見反饋、今日 DAU 超過 10W+ 等等。我之前是做了一個(gè)簡(jiǎn)單的 iOS 應(yīng)用來接收 Push 消息,需要推送消息時(shí)就...
摘要:看了兄弟的倍洽通知異常我們團(tuán)隊(duì)主要用釘釘,就想找個(gè)的釘釘通知異常的包,最好是安裝后開箱即用的?;朔昼妼懥艘粋€(gè)釘釘通知異常的包食用方法安裝發(fā)布配置文件配置記得配置你的效果如下倉庫 看了Hanson兄弟的倍洽通知異常 我們團(tuán)隊(duì)主要用釘釘,就想找個(gè)Laravel的釘釘通知異常的包,最好是安裝后開箱即用的。 在Google和GitHub上找了有3分鐘還是沒有找到能開箱即用的,于是自己動(dòng)手豐...
摘要:先去你團(tuán)隊(duì)所在管理面板添加一個(gè)機(jī)器人。這個(gè)過程很費(fèi)時(shí)間不說,偶爾還會(huì)弄錯(cuò),現(xiàn)在有了這個(gè)二維碼機(jī)器人,不止方便,地址也寫在上邊,大家可以即及時(shí)發(fā)現(xiàn)錯(cuò)誤。 真的一分鐘就可以完成一個(gè)二維碼機(jī)器人? 我們團(tuán)隊(duì)在使用自己產(chǎn)品的時(shí)候,經(jīng)常會(huì)有冒出一些很多小想法,比如: 在抽獎(jiǎng)的時(shí)候能不能有個(gè)機(jī)器人幫助我們擲色子?在選擇困難的時(shí)候有一個(gè)機(jī)器人幫我決定中午吃啥?我想把電腦上的一個(gè)頁面用手機(jī)打開,能不能...
閱讀 1441·2021-11-25 09:43
閱讀 2043·2021-07-26 23:38
閱讀 751·2019-08-30 15:53
閱讀 2289·2019-08-30 15:43
閱讀 1180·2019-08-29 18:40
閱讀 1981·2019-08-26 13:28
閱讀 1983·2019-08-23 18:20
閱讀 555·2019-08-23 15:07