Laravel 5.6升级导致日志记录中断

时间:2018-03-02 16:42:42

标签: php laravel logging laravel-5.6

Heey!

所以我最近被赋予了将Laravel 5.2提升到5.6的任务。它似乎很好......直到我试图做\Log::info()。每次我运行它,我都会收到一个很大的错误,但最后,它仍会打印到日志中。我看到了关于创建config/logger.php的5.6文档。我从github那里拿了一份新的副本。我之后唯一做的就是为LOG_CHANNEL设置一个env变量为单一。这是我得到的错误:

  

[2018-03-02 08:28:59] laravel.EMERGENCY:无法创建配置的记录器。使用紧急记录器。 {“exception”:“[object](InvalidArgumentException(code:0):Log []未定义。在I:\ xampp \ htdocs \ mtm \ vendor \ laravel \ framework \ src \ Illuminate \ Log \ LogManager.php: 181)   [....

我在Laravel 5.2和5.6之间进行了文件比较。我没有看到任何跳出来会破坏Logging功能的东西。

有没有人通过Laravel升级遇到这个问题?

6 个答案:

答案 0 :(得分:17)

将此文件添加到配置文件夹中 https://github.com/laravel/laravel/blob/develop/config/logging.php

并将其添加到.env文件LOG_CHANNEL=stack

答案 1 :(得分:5)

我最近在我的开发机器中遇到了同样的错误(而不是在生产机器中,奇怪的是)。在我的开发机器中,我安装了php 7.1php 7.2。检查phpinfo(),我发现7.1是默认版本,因此我决定切换到7.2。

sudo a2dismod php7.1
sudo a2enmod php7.2
sudo systemctl restart apache2

这并没有解决问题(但可能是其中的一部分)。

花了几个小时的时间尝试在网络上建议的所有内容后,我找到了我的解决方案:

  1. 检查存储文件夹中的所有权限。
  2. 在我的项目文件夹中,清除所有缓存和配置。
  3. 转储所有作曲家自动加载文件。
  4. 详细说明:

    cd your_project_full_path
    sudo chmod -R 0775 storage
    sudo chown -R www-data:www-data storage
    php artisan config:clear
    php artisan view:clear
    php artisan route:clear
    composer dump-autoload
    

    在此之后,我再也没有问题了。也许尝试0755作为存储文件夹的权限。希望这有帮助!

答案 2 :(得分:3)

使用upgrade guide,并将logging.php添加到您的配置文件中。

答案 3 :(得分:3)

我遇到了同样的问题,试图做所有与您一样的事情,但是没有用。

最后,我发现这是因为缓存了配置,只需清除它,一切都会好起来的:

php artisan config:clear

答案 4 :(得分:2)

经过两天的研究,我在Github找到了一个解决方案。

如果您使用Laravel 5.5.4到Laravel 5.6。*,那么您可以安装和配置Graham Campbell的例外包。

链接:https://github.com/GrahamCampbell/Laravel-Exceptions

在Mac OSX(PHP 7.1.7),Laravel 5.6.22

上,这对我来说非常适合

我的初始错误:

2018-05-25 14:35:07] laravel.EMERGENCY: Unable to create configured logger. 

Using emergency logger. {"exception":"[object] (InvalidArgumentException(code: 0): Log [] is not defined. at /Users/pro/Sites/metiwave/vendor/laravel/framework/src/Illuminate/Log/LogManager.php:181)

答案 5 :(得分:0)

由于我的laravel版本从5.3升级到5.7,因此我遇到了同样的问题。但是在搜寻了几枚薄荷糖之后,我找到了解决方案。 您只需要按照以下步骤操作即可。

  1. config 文件夹中创建logging.php文件。
  2. 从Laravel的Official Link复制代码。
  3. 将此代码粘贴到您的logging.php文件中。
  4. 运行此命令-php artisan config:clear

全部完成。快乐编码:)

相关问题