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升级遇到这个问题?
答案 0 :(得分:17)
将此文件添加到配置文件夹中 https://github.com/laravel/laravel/blob/develop/config/logging.php
并将其添加到.env文件LOG_CHANNEL=stack
答案 1 :(得分:5)
我最近在我的开发机器中遇到了同样的错误(而不是在生产机器中,奇怪的是)。在我的开发机器中,我安装了php 7.1
和php 7.2
。检查phpinfo()
,我发现7.1是默认版本,因此我决定切换到7.2。
sudo a2dismod php7.1
sudo a2enmod php7.2
sudo systemctl restart apache2
这并没有解决问题(但可能是其中的一部分)。
花了几个小时的时间尝试在网络上建议的所有内容后,我找到了我的解决方案:
详细说明:
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,因此我遇到了同样的问题。但是在搜寻了几枚薄荷糖之后,我找到了解决方案。 您只需要按照以下步骤操作即可。
全部完成。快乐编码:)