Laravel 5.6 升级导致日志记录中断
Laravel 5.6 Upgrade caused Logging to break
嘿嘿!
所以我最近接到任务,要 Laravel 5.2 达到 5.6。它似乎很好......直到我尝试做一个 \Log::info()
。每次我 运行 那个,我都会得到一个很大的错误,但最后,它仍然打印到日志中。我看到了关于创建 config/logger.php
的 5.6 文档。我从 github 那里拿了一份新的副本。在那之后我做的唯一一件事就是为 LOG_CHANNEL
设置一个 env 变量。这是我得到的错误:
[2018-03-02 08:28:59] laravel.EMERGENCY: Unable to create configured logger. Using emergency logger. {"exception":"[object] (InvalidArgumentException(code: 0): Log [] is not defined. at I:\xampp\htdocs\mtm\vendor\laravel\framework\src\Illuminate\Log\LogManager.php:181)
[ ....
我在 Laravel 5.2 和 5.6 之间进行了文件比较。我没有看到任何会破坏日志记录功能的跳出。
有没有人 运行 通过 Laravel 升级来解决这个问题?
将此文件添加到您的配置文件夹
https://github.com/laravel/laravel/blob/5.6/config/logging.php
并将其添加到您的 .env 文件中 LOG_CHANNEL=stack
之后别忘了运行php artisan config:clear
命令。
我最近在我的开发机器中遇到了同样的错误(奇怪的是在生产机器中没有)。在我的开发机器中,我同时安装了 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 作为存储文件夹的权限。希望这对您有所帮助!
经过两天的研究,我在 Github 上找到了解决方案。
如果您正在使用 Laravel 5.5.4 到 Laravel 5.6.*,那么您只需安装和配置 Graham Campbell 的异常包即可。
Link: 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)
使用 upgrade guide ,并将 logging.php
添加到您的配置文件中。
我遇到了同样的问题,并尝试按照您的方式做所有事情,但没有成功。
最后发现是缓存配置的问题,清除掉就好了:
php artisan config:clear
由于我的 laravel 版本从 5.3 升级到 5.7,我遇到了同样的问题。但是在搜索了一些薄荷糖之后,我找到了解决方案。
您只需按照以下步骤操作即可。
- 在 config 文件夹中创建 logging.php 文件。
- 从 Laravel 的 Official Link 中复制代码。
- 将此代码粘贴到您的 logging.php 文件中。
- 运行 这个命令 -- php artisan config:clear
全部完成。快乐编码:)
在我的例子中,APP_LOG=
在 .env 文件中是空白的,所以我将其保存为 APP_LOG=single
并且有效。
我遇到了同样的问题,原来我不小心移动了配置文件夹。如果你发现自己遇到同样的情况,(可能和我一样尴尬)把它移回你项目的根文件夹。
此致
好的,我知道了
看看官方库,复制log config配置代码:
link :https://github.com/laravel/laravel/blob/5.6/config/logging.php
在项目的配置目录中创建 logging.php 文件
将代码复制到
清除缓存:php artisan config:clear
就是这样。继续踩...
嘿嘿!
所以我最近接到任务,要 Laravel 5.2 达到 5.6。它似乎很好......直到我尝试做一个 \Log::info()
。每次我 运行 那个,我都会得到一个很大的错误,但最后,它仍然打印到日志中。我看到了关于创建 config/logger.php
的 5.6 文档。我从 github 那里拿了一份新的副本。在那之后我做的唯一一件事就是为 LOG_CHANNEL
设置一个 env 变量。这是我得到的错误:
[2018-03-02 08:28:59] laravel.EMERGENCY: Unable to create configured logger. Using emergency logger. {"exception":"[object] (InvalidArgumentException(code: 0): Log [] is not defined. at I:\xampp\htdocs\mtm\vendor\laravel\framework\src\Illuminate\Log\LogManager.php:181) [ ....
我在 Laravel 5.2 和 5.6 之间进行了文件比较。我没有看到任何会破坏日志记录功能的跳出。
有没有人 运行 通过 Laravel 升级来解决这个问题?
将此文件添加到您的配置文件夹 https://github.com/laravel/laravel/blob/5.6/config/logging.php
并将其添加到您的 .env 文件中 LOG_CHANNEL=stack
之后别忘了运行php artisan config:clear
命令。
我最近在我的开发机器中遇到了同样的错误(奇怪的是在生产机器中没有)。在我的开发机器中,我同时安装了 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 作为存储文件夹的权限。希望这对您有所帮助!
经过两天的研究,我在 Github 上找到了解决方案。
如果您正在使用 Laravel 5.5.4 到 Laravel 5.6.*,那么您只需安装和配置 Graham Campbell 的异常包即可。
Link: 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)
使用 upgrade guide ,并将 logging.php
添加到您的配置文件中。
我遇到了同样的问题,并尝试按照您的方式做所有事情,但没有成功。
最后发现是缓存配置的问题,清除掉就好了:
php artisan config:clear
由于我的 laravel 版本从 5.3 升级到 5.7,我遇到了同样的问题。但是在搜索了一些薄荷糖之后,我找到了解决方案。 您只需按照以下步骤操作即可。
- 在 config 文件夹中创建 logging.php 文件。
- 从 Laravel 的 Official Link 中复制代码。
- 将此代码粘贴到您的 logging.php 文件中。
- 运行 这个命令 -- php artisan config:clear
全部完成。快乐编码:)
在我的例子中,APP_LOG=
在 .env 文件中是空白的,所以我将其保存为 APP_LOG=single
并且有效。
我遇到了同样的问题,原来我不小心移动了配置文件夹。如果你发现自己遇到同样的情况,(可能和我一样尴尬)把它移回你项目的根文件夹。
此致
好的,我知道了 看看官方库,复制log config配置代码:
link :https://github.com/laravel/laravel/blob/5.6/config/logging.php
在项目的配置目录中创建 logging.php 文件 将代码复制到
清除缓存:php artisan config:clear
就是这样。继续踩...