Laravel 5.5 中未写入日志文件

Deb*_*sad 7 php logging laravel monolog

我在 Laravel 5.5 上默认启用了日志记录。

设置是:

config/app.php文件中:

'log' => env('APP_LOG', 'single'),

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

.env文件中:

APP_LOG_LEVEL=debug
Run Code Online (Sandbox Code Playgroud)

如果应用程序发生任何错误,我可以看到异常页面。但我不再在日志文件中看到它了。几个月前它运行良好。即使我尝试手动登录,它也不会记录。

Log::debug('Notification');
Run Code Online (Sandbox Code Playgroud)

我有使用创建文件的代码Storage,它工作正常。所以,我不认为这是一些许可问题。这背后的原因可能是什么?

Deb*_*sad 3

我发现了这个问题。我正在使用 Bugsnag (用于生产),并且我已在项目中设置了它。

当我集成它时,我使用了它在仪表板上的说明,我认为该说明并不完整,因为他们在文档中提供了它。因此,我在应用程序服务提供程序 app/Providers/AppServiceProvider.php 的注册方法中添加了以下代码。

$this->app->alias('bugsnag.logger', \Illuminate\Contracts\Logging\Log::class);
$this->app->alias('bugsnag.logger', \Psr\Log\LoggerInterface::class);
Run Code Online (Sandbox Code Playgroud)

在我的本地环境中,我没有BUGSNAG_API_KEY在我的.env文件中设置。因此,它既没有将异常发送到 Bugsnag,也没有登录到本地 laravel.log 文件。

当我将 Bugsnag 集成到另一个在 Laravel 6 上运行的项目时,我怀疑这个问题并检查了文档。在那里我找到了继续记录到我的原始记录器以及 Bugsnag 所需的代码。

$this->app->alias('bugsnag.multi', \Illuminate\Contracts\Logging\Log::class);
$this->app->alias('bugsnag.multi', \Psr\Log\LoggerInterface::class);
Run Code Online (Sandbox Code Playgroud)