symfony框架,错误 :The handler has to be specified to use a FingersCrossedHandler or BufferHandler or FilterHandler

symfony框架在使用php7.2的时候会有一个错误抛出:

Fatal error: Uncaught InvalidArgumentException: The handler has to be specified to use a FingersCrossedHandler or BufferHandler or FilterHandler in xxxxxxxxxxx\src\Symfony\Component\Config\Definition\BaseNode.php on line 313
Symfony\Component\Config\Definition\Exception\InvalidConfigurationException: Invalid configuration for path "monolog.handlers.main": The handler has to be specified to use a FingersCrossedHandler or BufferHandler or FilterHandler in

这个文件的函数是一个验证的闭包函数设置,抛出错误是因为count()函数  这个函数在7.2中不能用来统计字符串长度,如果用它来统计字符串长度它会抛出警告并返回1,这个错误可以直接找到报错的文件好像是一个叫configuration.php的文件将count()方法改成strlen(),但是如果用了monolog-bundle这个包,还是会报错。

报这个错一般会出现在低版本的monolog-bundle中:

解决方法:

将monolog-bundle升级到3.1.2或以上版本

下载地址:https://github.com/symfony/monolog-bundle/releases/tag/v3.1.2

下载后解压,将解压的包放到 vendor\symfony 路径下,或者重新安装一下指定版本 




Tags php linux

留言(0)

评论