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

Php Laravel 5.6升级导致日志记录中断,php,laravel,logging,laravel-5.6,Php,Laravel,Logging,Laravel 5.6,嘿 因此,我最近被赋予了一个任务,让我将Laravel5.2升级到5.6。它似乎很好…直到我尝试做一个\Log::info()。每次运行它,我都会得到一个很大的错误,但最后,它仍然会打印到日志中。我看到了关于创建config/logger.php的5.6文档。我从github那里拿到了一份新的副本。之后我做的唯一一件事是将LOG\u通道的env变量设置为single。下面是我得到的错误: [2018-03-02 08:28:59]laravel.EMERGENCY:无法创建已配置的记录器。使用应

因此,我最近被赋予了一个任务,让我将Laravel5.2升级到5.6。它似乎很好…直到我尝试做一个
\Log::info()
。每次运行它,我都会得到一个很大的错误,但最后,它仍然会打印到日志中。我看到了关于创建
config/logger.php
的5.6文档。我从github那里拿到了一份新的副本。之后我做的唯一一件事是将
LOG\u通道的env变量设置为single。下面是我得到的错误:

[2018-03-02 08:28:59]laravel.EMERGENCY:无法创建已配置的记录器。使用应急记录器。{“异常”:“[object](InvalidArgumentException(代码:0):未定义日志[]。位于I:\xampp\htdocs\mtm\vendor\laravel\framework\src\illighte\Log\LogManager.php:181) [

我在Laravel5.2和5.6之间做了一个文件比较。我没有看到任何会破坏日志功能的东西


有人在升级Laravel时遇到过这个问题吗?

将此文件添加到您的配置文件夹中


并将此添加到您的.env文件
LOG\u CHANNEL=stack

我最近在我的开发机器中遇到了相同的错误(奇怪的是,在生产机器中没有)。在我的开发机器中,我同时安装了
PHP7.1
PHP7.2
。请使用
phpinfo()检查
,我发现7.1是默认版本,所以我决定切换到7.2

sudo a2dismod php7.1
sudo a2enmod php7.2
sudo systemctl restart apache2
这并没有解决问题(但可能是问题的一部分)

在花了几个小时尝试网络上的所有建议后,我通过以下方式找到了解决方案:

  • 正在检查存储文件夹中的所有权限
  • 在我的项目文件夹中,清除所有缓存和配置
  • 正在转储所有composer自动加载文件
  • 详细内容:

    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提供的exceptions包即可

    链接:

    这在MacOSX(PHP7.1.7)、Laravel5.6.22上非常适合我

    我的初始错误:

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

    使用紧急记录器。{“异常”:“[object](InvalidArgumentException(代码:0):未定义日志[]。at/Users/pro/Sites/metiwave/vendor/laravel/framework/src/light/Log/LogManager.php:181)

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

    我遇到了同样的问题,并尝试像您那样做,但没有工作

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

    php artisan config:clear
    

    由于将我的laravel版本从5.3升级到5.7,我也面临同样的问题。但在搜索了几家造币厂后,我找到了解决方案。 您只需要遵循以下步骤

  • config文件夹中创建logging.php文件
  • 从Laravel的本文档复制代码
  • 将此代码保存到logging.php文件中
  • 运行以下命令--php artisan config:clear


  • 全部完成。快乐编码:)

    'Log'=>照亮\Support\Facades\Log::class,
    在你的
    别名中
    config/app.php
    中?@ceejayoz是的!我确认了。:)好问题。嗯,非常奇怪。如果你做
    Log::info
    调用Tinker呢?同样的错误?是的。Tinker输出null和laravel.E紧急情况出现在错误日志中。我希望您的错误已经解决。我们也遇到了同样的问题,调试后我们发现APP_log_LEVEL需要全部使用小写。不幸的是,我们添加了APP_log_LEVEL=error,这导致了问题。我已经添加了logger.php,正如我提到的。它在升级中。我尝试了堆栈,而不是.env中的f single,但两者都返回了相同的错误。感谢您的加入!@cbloss793它是
    logging.php
    而不是
    logger.php
    。它解决了我的问题。@AmitShah可能就是这样。我刚开始使用了一个新版本,并将各个部分移到了另一个版本。不过谢谢!!这个链接被打断了!谢谢您详细说明!我使用的是PHP 7.1.7,根据Laravel文档,它应该可以使用。遗憾的是,我在Windows机器上,所以权限不是问题。我做了你建议的所有artisan清除和composer转储。仍然不起作用。我想知道是否需要升级到PHP 7.2.PS。我给了你投票,让你进行彻底的answ呃。我知道这会有帮助。只是在我的情况下不起作用。谢谢你的投票:)无论如何,如果你仍在挣扎,你可以做的另一个测试是尝试创建一个新的应用程序:如果你仍然有这个问题,可能是环境问题,否则应该是与你当前升级本身有关的问题(从5.2跳到5.6跳得很大!).这就是我的想法。这是我拥有的第一个5.6应用程序。我在其他5.5上,它们都很好。这是我做的第一个大规模更新应用程序。我几乎刚刚创建了一个新应用程序并移动了部分,但我没有启动这个应用程序,而且有很多定制的东西。我可能仍然会这样做。谢谢你的提示!我花了三个小时在这上面,哟你的答案是正确的!很有魅力!很好的发现!我必须在我的旧项目上尝试这个,并让你知道它是否对我有效。我最终只是使用了新安装的Laravel 5.6并移动了部件。它让事情变得更干净。我很好奇它是否有效!+1用于研究!@cbloss793我确信它会对你有效,因为e您将可以看到应用程序上的错误并轻松修复。感谢大家的大拇指,正如我之前提到的,我做到了。感谢您的尝试。我也这么做了。我想我错过了更多。重新安装并移动文件效果最好。谢谢!欢迎使用Stack!!:)