如何在没有日志,没有信息的情况下调试Laravel错误500

Gau*_*ier 7 php error-handling laravel

我正在开发一个现有的Laravel应用程序,以开发新功能,但是在计算机上安装该应用程序后,出现500错误,没有任何解决办法。

在我的app.php文件中,我设置了:

'env' => env('APP_ENV', 'local'),
'debug' => env('APP_DEBUG', true),
Run Code Online (Sandbox Code Playgroud)

但是我仍然没有信息,没有日志生成storage/logs。我不知道可能是什么问题。

以前的开发人员是在Windows上工作的,而我正在Linux上工作,但是我不确定这是否是现实。

编辑:

我的config / app.php中也有这些变量

'log' => env('APP_LOG', 'daily'),
'log_level' => env('APP_LOG_LEVEL', 'debug'),
Run Code Online (Sandbox Code Playgroud)

Leo*_*hko 14

我遇到了类似的问题(看到错误 500,但日志存在)。

为了能够直接在页面上看到错误,我做了以下更改:

  1. 启用调试模式:APP_DEBUG=true
  2. 重新加载配置:php artisan config:cache


leh*_*hel 8

在查看.env文件旁边,请确保正确设置了权限(以及良好的做法是storage/logs手动创建文件夹-至少在引起问题的Windows上)。

  • 您(或其他人)能否提供代码示例,说明如何/在何处更改这些权限?这些细节将是非常有用的部分。谢谢 (3认同)
  • 干得好,我更改了权限,现在显示了一些错误。谢谢。我将在 8 分钟内验证您的答案;) (2认同)

use*_*101 7

某些 PHP 异常无法捕获,因此 Laravel 无法处理它们。例如语法错误或最大内存限制错误。

用户定义的函数无法处理以下错误类型:E_ERROR、E_PARSE、E_CORE_ERROR、E_CORE_WARNING、E_COMPILE_ERROR、E_COMPILE_WARNING,以及在调用 set_error_handler() 的文件中引发的大部分 E_STRICT。

参考:http : //php.net/manual/en/function.set-error-handler.php


Rit*_*esh 5

我尽一切努力找出问题,例如启用错误报告来报告所有内容,例如:

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
Run Code Online (Sandbox Code Playgroud)

我也尝试添加自定义错误处理程序,但对我来说没有任何作用。所以最后我在 apache 错误日志文件夹中的 php 错误日志文件中找到了实际问题(Applications/MAMP/logs就像我使用 Mac 一样)。