摘要:學(xué)和,你真應(yīng)該來的在的應(yīng)用當(dāng)中使用異常處理其實(shí)是很有用的,它可以追蹤到你的錯(cuò)誤在哪,并且你的異常信息也是可以直接保存到中的,所以,這樣的機(jī)制也給了我們查看異常的便利。自定義其實(shí)背后也不是那么神秘,就是使用了社區(qū)非常棒的一個(gè)日志處理。
學(xué) Laravel 和 Vuejs,你真應(yīng)該來 codecasts.com 的
在 Laravel 的應(yīng)用當(dāng)中使用異常處理其實(shí)是很有用的,它可以追蹤到你的錯(cuò)誤在哪,并且你的異常信息也是可以直接保存到 storage/logs/laravel.log 中的,所以,這樣的機(jī)制也給了我們查看異常的便利。
不處理某些異常然而在現(xiàn)實(shí)的應(yīng)用中,有些異常處理其實(shí)我們根本都不關(guān)心它是否拋出了,比如 TokenMismatchException,這個(gè)異常我覺得在線上的環(huán)境是可以直接忽略的,所以在 Laravel 中,其實(shí)我們可以很容易就能配置出這樣的效果,我們可以打開 AppExceptionsHandler 文件,在 $dontReport 指定就可以了,Laravel 本身就自帶了一些不需管的異常處理,如果是我們自定義的異常處理的話,在我們不想管它是否是拋出的話,就可以直接配置 $dontReport :
class Handler extends ExceptionHandler { protected $dontReport = [ MyCustomException::class ]; }Log 種類
而如果是異常拋出的話,Laravel 會將異常的信息寫入 storage/logs/laravel.log 文件中的,當(dāng)然這是默認(rèn)的情況,因?yàn)?Laravel 其實(shí)有四種不同格式的日志記錄:
單個(gè) log 文件,配置為 single
每天記錄一個(gè) log 文件,配置為 daily
Syslog 處理,配置為 syslog
錯(cuò)誤日志處理,配置為 errorlog
在這里需要注意一點(diǎn)是,如果你使用的是 daily 的配置的話,Laravel 默認(rèn)只保存最近五天的 log 文件。
自定義 Handler其實(shí) log 背后也不是那么神秘,就是使用了 PHP 社區(qū)非常棒的一個(gè)日志處理 package : Monolog 。所以,其實(shí)如果說你想自定義一個(gè)日志處理器(LogHandler)的話,也是很簡單的,比如你可以在 bootstrap/app.php 中定義,就把代碼放在返回 $app 這個(gè)變量之前就可以了,偽代碼如下:
$app->configureMonologUsing(function ($monolog) { $monolog->pushHandler( new WebhookHandler($webhookUrl) ); }); return $app;異常分類處理
如果你想分開處理這些異常信息,你也是可以直接在 AppExceptionsHandler 的 report() 方法做處理的,比如說,如果你使用了類似 sentry 這樣的服務(wù),就是在這里添加兩行代碼就OK了:
if ($this->shouldReport($e)) { app("sentry")->captureException($e); }總結(jié)
Laravel 的異常處理和日志緊密結(jié)合,但是有時(shí)很靈活的,我們還是很容易地自定義自己的需求和分類處理異常信息。
關(guān)注 codecasts 公眾號,定時(shí)送書,送福利
第一次點(diǎn)贊最高送書活動(dòng)的中獎(jiǎng)同學(xué)為:conversant,評論的內(nèi)容是:laravel 學(xué)習(xí)過程中看了很多 laravist 的視頻,很贊,頂我!這位同學(xué)記得向公眾號發(fā)你的聯(lián)系方式和地址。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/23156.html
摘要:請求未通過的驗(yàn)證時(shí)會拋出此異常。異常處理是非常重要但又容易讓開發(fā)者忽略的功能,這篇文章簡單解釋了內(nèi)部異常處理的機(jī)制以及擴(kuò)展異常處理的方式方法。 異常處理是編程中十分重要但也最容易被人忽視的語言特性,它為開發(fā)者提供了處理程序運(yùn)行時(shí)錯(cuò)誤的機(jī)制,對于程序設(shè)計(jì)來說正確的異常處理能夠防止泄露程序自身細(xì)節(jié)給用戶,給開發(fā)者提供完整的錯(cuò)誤回溯堆棧,同時(shí)也能提高程序的健壯性。 這篇文章我們來簡單梳理一下...
摘要:在通常情況下,會自動(dòng)將異常信息分為兩種格式來處理或者。而在這之前,它會把基本所有的異常信息先處理為后面講一下常見的異常處理。認(rèn)證異常處理認(rèn)證異常是指,這個(gè)是由的方法來處理的。 學(xué) Laravel 和 Vuejs,來 codecasts.com 看高質(zhì)量視頻教程 之前的一篇文章介紹了 Laravel 的異常和日志的一些情況,本文來看看 Laravel 在處理異常返回的時(shí)候是什么樣的流程。...
摘要:總結(jié)本文主要學(xué)習(xí)了啟動(dòng)時(shí)做的七步準(zhǔn)備工作環(huán)境檢測配置加載日志配置異常處理注冊注冊啟動(dòng)。 說明:Laravel在把Request通過管道Pipeline送入中間件Middleware和路由Router之前,還做了程序的啟動(dòng)Bootstrap工作,本文主要學(xué)習(xí)相關(guān)源碼,看看Laravel啟動(dòng)程序做了哪些具體工作,并將個(gè)人的研究心得分享出來,希望對別人有所幫助。Laravel在入口index...
摘要:是一款即時(shí)通信軟件,類似于,它提供開放的,可以調(diào)用它向自己團(tuán)隊(duì)中指定的個(gè)人或者頻道發(fā)送消息,因此用它來進(jìn)行異常通知是再合適不過的。這樣,當(dāng)程序中出現(xiàn)異常時(shí),運(yùn)維能在第一時(shí)間收到相關(guān)的通知信息,方便及時(shí)處理了。 異常處理是軟件開發(fā)過程中無法逃避的問題。對于一套設(shè)計(jì)良好代碼高效的程序,出現(xiàn)異常的可能性會比較低,但這并不意味著不會出現(xiàn)異常,有些異常甚至?xí)饑?yán)重的后果,所以如何及時(shí)的發(fā)現(xiàn)程序...
摘要:文章轉(zhuǎn)自視頻教程優(yōu)雅的應(yīng)用調(diào)試工具新擴(kuò)展是由和開源的應(yīng)用的調(diào)試工具。計(jì)劃任務(wù)列出已運(yùn)行的計(jì)劃任務(wù)。該封閉函數(shù)會被序列化為一個(gè)長字符串,加上他的哈希與簽名如出一轍該功能將記錄所有異常,并可查看具體異常情況。事件顯示所有事件的列表。 文章轉(zhuǎn)自:https://laravel-china.org/topics/19013視頻教程:047. 優(yōu)雅的應(yīng)用調(diào)試工具--laravel/telesco...
閱讀 921·2023-04-25 18:51
閱讀 1875·2021-09-09 11:39
閱讀 3286·2019-08-30 15:53
閱讀 2104·2019-08-30 13:03
閱讀 1314·2019-08-29 16:17
閱讀 587·2019-08-29 11:33
閱讀 1888·2019-08-26 14:00
閱讀 2127·2019-08-26 13:41