雖然開啓了APP_DEBUG 可是 log 卻沒有記錄任何錯誤信息,後來通過測試發現原來是路由問題,由於微信服務器發送消息是使用 post 方法,可是個人路由定義只定義了 get (tp 用多了習慣了不分 get、post),因此會致使路由異常,從而致使微信公衆號上面會提示服務器故障,中間方向錯誤,致使排查好久,後來纔想起能夠在異常處理文件裏面寫 log。php
這時候咱們能夠在 app\Exceptions\Handler.php 的 report 方法加上下面幾句,出異常的時候記錄錯誤信息:laravel
if (env('APP_DEBUG')) { \Log::error('error file: ' . $exception->getFile()); \Log::error('error line: ' . $exception->getLine()); \Log::error('error message: ' . $exception->getMessage()); \Log::error('exception type: ' . get_class($exception)); \Log::error('trace' . $exception->getTraceAsString()); }
加上以後 report 方法以下:服務器
這樣一來,開發過程當中的 500 就所有記錄下來(前提是開啓debug模式),這樣開發的時候,微信提示服務器故障的時候就能夠去看 log 是什麼緣由致使的。微信
還有一個須要注意的是:laravel 默認開啓 csrf 的驗證,咱們能夠在 app\Http\Kernel.php 的 $middlewareGroups 中能夠看到有這麼一行:app
\App\Http\Middleware\VerifyCsrfToken::class,post
可是咱們須要清楚的是,微信 post 過來的數據是沒有這個 token 的,因此咱們須要把這一行註釋掉,不然在驗證這一步就會返回,得不到咱們想要的結果。測試