Laravel 6 API 不会在日志中写入错误 500

Posted

技术标签:

【中文标题】Laravel 6 API 不会在日志中写入错误 500【英文标题】:Laravel 6 API doesn't write error 500 in logs 【发布时间】:2020-06-20 13:01:22 【问题描述】:

如何设置 Laravel 从 API 捕获/记录 500 错误?

我有 Laravel 6.x,在 .env 中,我有 APP_ENV=productionAPP_DEBUG=false 以及一个带有 DB::table('table_doesnt_exists')->get() 的函数。

如果我从浏览器访问调用该函数的网络路由,我会在屏幕上看到“500 服务器错误”,并且错误会写入日志,这是完美的。

如果使用 axios 并调用调用相同函数的 API 路由,我只会得到 HTTP 响应 500,没有任何响应,最重要的是日志中没有错误。

【问题讨论】:

这个api在同一个环境吗? 是同一个laravel(同一个项目)......这发生在本地服务器(宅基地)和vps上。 尝试清除配置缓存。并检查日志文件权限 【参考方案1】:

在尝试了多种组合后,我设法让它工作了。

APP_ENV=local
APP_DEBUG=false

错误写入日志,API只返回

 message: "Server Error" 

【讨论】:

以上是关于Laravel 6 API 不会在日志中写入错误 500的主要内容,如果未能解决你的问题,请参考以下文章

PHP error_log 方法不会将错误写入我的错误日志文件

日志文件未在 Laravel 5.5 中写入

实时服务器上的 Laravel Coinbase API Http 异常错误,但适用于 Xampp

写入日志文件时Laravel 5权限被拒绝

laravel 怎么抓去错误日志

减少对外部 API 的身份验证调用(Laravel 5.6)