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

wmvff8tz  于 2023-01-12  发布在  PHP
关注(0)|答案(9)|浏览(193)

嘿!
最近我接到一个任务,要将Laravel 5.2提升到5.6。看起来还不错......直到我尝试执行\Log::info()。每次我运行它,都会出现一个大错误,但最后,它仍然打印到日志。我看到了关于创建config/logger.php的5. 6文档。我从Github获取了它的新副本。之后我做的唯一一件事就是设置一个env变量使LOG_CHANNEL为single。
[2018-03-02 08:28:59]拉瑞维尔.紧急情况:无法创建已配置的记录器。正在使用紧急记录器。{“exception”:“[object](InvalidArgumentException(代码:0):日志[]没有定义。在I:\xampp\htdocs\mtm\vendor\laravel\framework\src\Illuminate\Log\日志管理器。
我在Laravel 5.2和5.6之间做了一个文件比较。我没有看到任何会破坏日志记录功能的东西。
有人在升级Laravel时遇到过这种情况吗?

ttygqcqt

ttygqcqt1#

将此文件添加到配置文件夹https://github.com/laravel/laravel/blob/5.6/config/logging.php
并将其添加到.env文件LOG_CHANNEL=stack
之后不要忘记运行php artisan config:clear命令。

ni65a41a

ni65a41a2#

由于我的laravel版本从5. 3升级到5. 7,我也面临着同样的问题。但是在搜索了几个薄荷糖之后,我找到了解决方案。你只需要按照下面的步骤操作。
1.在config文件夹中创建logging.php文件。
1.从Laravel的Official Link复制代码。
1.将此代码粘贴到logging.php文件中。
1.运行这个命令-- php artisan配置:清除
全部完成。快乐编码:)

m2xkgtsf

m2xkgtsf3#

我也遇到了同样的问题,试着像你一样做每件事,但没有效果。
最后,我发现这是因为缓存的配置,只要清除它,一切都会很好:

php artisan config:clear
iklwldmw

iklwldmw4#

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

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

这并没有解决问题(但可能是问题的一部分)。
在花了几个小时尝试网络上建议的一切之后,我找到了我的解决方案:
1.正在检查存储文件夹中的所有权限。
1.在我的项目文件夹中,清除所有该高速缓存和配置。
1.正在转储所有编写器自动加载文件。
详细内容:

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作为存储文件夹的权限。希望这有帮助!

js5cn81o

js5cn81o5#

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

6qqygrtg

6qqygrtg6#

经过两天的研究,我在Github上找到了一个解决方案。
如果您使用的是Laravel 5.5.4到Laravel 5.6.*,那么您只需安装和配置Graham坎贝尔的例外包即可。
链接:https://github.com/GrahamCampbell/Laravel-Exceptions
这在MacOSX(PHP7.1.7)和Laravel5.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)

wxclj1h5

wxclj1h57#

在我的例子中,APP_LOG=在**.env**文件中是空的,所以我将其保存为APP_LOG=single,它工作了。

kt06eoxx

kt06eoxx8#

我也遇到了同样的问题,原来我不小心移动了config文件夹。如果你发现自己也遇到了同样的情况,(可能和我一样尴尬)把它移回你项目的根文件夹。
问候

qlckcl4x

qlckcl4x9#

好的,我知道了看看官方库,复制日志配置配置代码:
链接:https://github.com/laravel/laravel/blob/5.6/config/logging.php
在项目的config目录中创建logging.php文件将代码复制到
清除该高速缓存:php artisan配置:清除
就这样,继续踩...

相关问题