我正在将应用程序从Symfony 5.4升级到Symfony 6.0。一路上,我不得不升级一些教义图书馆。
我们目前正在使用setSQLLogger(null(来避免启用SQL日志记录。通过使用新版本的条令,我得到了一个警告:
Doctrine\DBAL\Configuration::setSQLLogger方法已被弃用(请改用{@seesetMiddlewares((}和{@see \DBAL\Logging\Middleware}(
我不知道如何用setMiddleware替换setSQLLogger(null(,以便禁用SQL日志记录。
有人遇到这个问题并设法解决了吗?
谢谢。
我替换了这个代码:
$em->getConnection()->getConfiguration()->setSQLLogger(null);
带有:
$em->getConnection()->getConfiguration()->setMiddlewares([new DoctrineDBALLoggingMiddleware(new PsrLogNullLogger())]);
这使得NullLogger成为唯一的中间件。
您应该配置一个中间件来接受NullLogger
,然后将其与setMiddlewares
方法一起使用。
因此,从symfony的角度来看,你可以做一些类似的事情
# configuration.yaml // or whatever name you have
services:
doctrine.logging.middleware.null: // or whatever name you prefer
class: DoctrineDBALLoggingMiddleware
autowire: false
arguments:
- #FQCN or service id of NullLogger
然后,您可以在使用setLogger
的地方注入它,并用setMiddlewares
替换该方法调用。
我自己没有尝试过,因为我们运行的是旧版本,但我很有信心这会解决您的问题。