从 Laravel 5.5 升级后,Logger 不再工作
Posted
技术标签:
【中文标题】从 Laravel 5.5 升级后,Logger 不再工作【英文标题】:Logger does not work anymore after upgrade from Laravel 5.5 【发布时间】:2018-09-16 06:55:24 【问题描述】:自从我从 Laravel 5.5 版升级到 Laravel 5.6 版后,我的 Logger 就无法正常工作了。
起初我得到以下错误堆栈:
laravel.EMERGENCY: Unable to create configured logger. Using emergency logger. "exception":"[object] (InvalidArgumentException(code: 0): Log [] is not defined. at /home/vagrant/Code/grotesmurf/vendor/laravel/framework/src/Illuminate/Log/LogManager.php:181)
只需添加 Laravel 5.6 提供的新 config/logging.php
文件即可解决。
但是现在我没有从 Logger 得到任何输出!我只是将\Log::info('hello!')
作为修补命令运行,但它不再生成任何日志输出(对于调用 \Log() 方法的脚本也是如此)。
我尝试了不同的 LOG_CHANNEL 设置(每日、单个、堆栈),但这些都不起作用。
希望任何人已经遇到过这个错误,并且能够为我提供一些建议。我已按照升级指南进行操作,但不幸的是它没有帮助。
提前致谢。
附:我在 ubuntu 上运行 php 7.1 版。
P.P.S.我已经使用 artisan 清除了所有缓存的配置。
【问题讨论】:
尝试根据您的需要编辑config/logging.php
,尝试将默认记录器更改为single
。
你关注Upgrade Guide了吗?尤其是日志部分?
@Kyslik 我已经使用我的 .env 文件对其进行了调整,如前所述,我尝试使用 3 个不同的可用通道,但似乎都没有生成输出。
@kerbholz 正如我所说的,是的,我遵循了升级指南,但似乎没有帮助.. 它确实适用于新的 Laravel 5.6 项目。
【参考方案1】:
好吧,我找到了实际问题,我们在应用程序中使用了调整后的 storage_path()
方法,而新的 Logger 现在使用 storage_path()
方法来生成其路径 - 这导致日志文件在不同的环境中创建目录比storage/logs
.
【讨论】:
以上是关于从 Laravel 5.5 升级后,Logger 不再工作的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 从 5.5 升级到 5.6 到 5.7:未捕获 ReferenceError: axios is not defined
从 laravel 5 升级到 laravel 5.5 导致错误参数 1 传递给 App\Exceptions\Handler::report()
Lumen:在 routes.php 第 17 行:升级到 5.5 后调用未定义的方法 Laravel\Lumen\Application::post()。*