【发布时间】:2021-11-15 07:45:09
【问题描述】:
我正面临这个错误“未捕获的类型错误:参数 1 已传递给 Illuminate\Log\Logger ::__construct() 必须是 Psr\Log\LoggerInterface 的实例,Mono 的实例 给定日志\记录器," 当我运行 php artisan 命令时。我的 php 版本是 7.3.9
【问题讨论】:
-
您找到解决此问题的方法了吗?现在遇到同样的问题
我正面临这个错误“未捕获的类型错误:参数 1 已传递给 Illuminate\Log\Logger ::__construct() 必须是 Psr\Log\LoggerInterface 的实例,Mono 的实例 给定日志\记录器," 当我运行 php artisan 命令时。我的 php 版本是 7.3.9
【问题讨论】:
我昨晚遇到了这个问题,最后尝试了 php 7.3 和 7.4,我只使用了最新的 php 8.1,这个问题就消失了。
【讨论】:
您找到解决此问题的方法了吗?现在遇到同样的问题
【讨论】:
您可以尝试转到illuminate/log/Logger.php 并在文件开头添加use Monolog\Logger as Monolog;。之后,从这里更改构造函数:
/**
* Create a new log writer instance.
*
* @param \Psr\Log\LoggerInterface $logger
* @param \Illuminate\Contracts\Events\Dispatcher|null $dispatcher
* @return void
*/
public function __construct(LoggerInterface $logger, Dispatcher $dispatcher = null)
{
$this->logger = $logger;
$this->dispatcher = $dispatcher;
}
到这里:
/**
* Create a new log writer instance.
*
* @param \Monolog\Logger $logger
* @param \Illuminate\Contracts\Events\Dispatcher|null $dispatcher
* @return void
*/
public function __construct(Monolog $logger, Dispatcher $dispatcher = null)
{
$this->logger = $logger;
$this->dispatcher = $dispatcher;
}
【讨论】: