摘要:修改在方法中添加如下代碼就可以了日志機器人好了,在代碼中故意寫個錯誤,看看收到錯誤日志了。如果覺得本篇文章對您十分有益,何不打賞一下
本文最早發表于本人博客: 制作一個BearyChat的Laravel項目錯誤日志通知機器人
Laravel 集成?Monolog?來做日志處理,Monolog非常強大,也容易擴展,其實它本身已經支持很多Handler了,你可以把日志發送到郵件或者其他日志收集服務器或者系統中,因為我們團隊使用Bearychat 作為團隊溝通工具,所以把Laravel項目的實時錯誤日志推送到Bearychat的一個討論組中,方便組員迅速發現異常和解決問題 ,其實很簡單沒多少行代碼就搞定了。
首先創建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數據就可以了,$record是Monolog記錄日志的詳情
創建一個BearyChat組用來接受通知
新建討論組,比如叫"Laravel錯誤日志報告"
添加機器人到討論組,點擊Incoming添加一個比如叫"Laravel日志機器人",發送目標選擇上一步建的"Laravel錯誤日志報告",這樣就獲取了webhook的URL地址了
把相應的人員加到這個討論組
集成ChearyChatHandler
官方手冊上講到,你像這樣完全控制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;
但是我們除了發送到ChearyChat以外還要保留默認的記錄到log文件的方式,所以我們不這樣做,我們只要在?Exception Handler的地方添加一個我們的ChearyChatHandler就可以了。
修改app/Exceptions/Handler.php,在report方法中添加如下代碼就可以了:
pushHandler(new BearyChatHandler("https://yourhookurl","Laravel日志機器人")); return parent::report($e); } ...... }
好了,在代碼中故意寫個錯誤,看看BearyChat收到錯誤日志了。
如果覺得本篇文章對您十分有益,何不 打賞一下
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/21617.html
摘要:提供了一種全新的發送通知的方式。個人理解是可以基于某事件操作觸發一系列的通知任務,而通知方式由通知渠道接管,這樣使得通知或推送邏輯更抽象,更易于管理和重構。在之前,我是利用的來完成這一系列通知。使用的配置文件還是原來的,無需重新配置。 Laravel Notification Laravel 5.3 提供了一種全新的發送通知的方式:Notification 。個人理解是可以基于某事件(...
摘要:后臺經常需要給管理員老板運營推送一些事件消息,比如有用戶購買了報錯服務器流量預警有新的評論收到新的意見反饋今日超過等等。 后臺經常需要給管理員/老板/運營推送一些事件消息,比如有用戶購買了VIP、PHP 報錯、服務器流量預警、App Store 有新的評論、收到新的意見反饋、今日 DAU 超過 10W+ 等等。我之前是做了一個簡單的 iOS 應用來接收 Push 消息,需要推送消息時就...
摘要:看了兄弟的倍洽通知異常我們團隊主要用釘釘,就想找個的釘釘通知異常的包,最好是安裝后開箱即用的?;朔昼妼懥艘粋€釘釘通知異常的包食用方法安裝發布配置文件配置記得配置你的效果如下倉庫 看了Hanson兄弟的倍洽通知異常 我們團隊主要用釘釘,就想找個Laravel的釘釘通知異常的包,最好是安裝后開箱即用的。 在Google和GitHub上找了有3分鐘還是沒有找到能開箱即用的,于是自己動手豐...
摘要:先去你團隊所在管理面板添加一個機器人。這個過程很費時間不說,偶爾還會弄錯,現在有了這個二維碼機器人,不止方便,地址也寫在上邊,大家可以即及時發現錯誤。 真的一分鐘就可以完成一個二維碼機器人? 我們團隊在使用自己產品的時候,經常會有冒出一些很多小想法,比如: 在抽獎的時候能不能有個機器人幫助我們擲色子?在選擇困難的時候有一個機器人幫我決定中午吃啥?我想把電腦上的一個頁面用手機打開,能不能...
閱讀 1436·2021-11-25 09:43
閱讀 2041·2021-07-26 23:38
閱讀 748·2019-08-30 15:53
閱讀 2287·2019-08-30 15:43
閱讀 1176·2019-08-29 18:40
閱讀 1977·2019-08-26 13:28
閱讀 1982·2019-08-23 18:20
閱讀 551·2019-08-23 15:07