从 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()

登录Laravel 5.5

Lumen:在 routes.php 第 17 行:升级到 5.5 后调用未定义的方法 Laravel\Lumen\Application::post()。*

Laravel 5.5 升级到 5.5.42 后遇到的 Cookie 序列化问题

Laravel 5.5 升级到 5.5.42 后遇到的 Cookie 序列化问题