有没有办法仅在夹具加载时禁用 Doctrine MongoDB 捆绑记录器?就像在https://stackoverflow.com/a/35222045/3965970中建议的那样,但对于 MongoDB 捆绑包。
谢谢
有没有办法仅在夹具加载时禁用 Doctrine MongoDB 捆绑记录器?就像在https://stackoverflow.com/a/35222045/3965970中建议的那样,但对于 MongoDB 捆绑包。
谢谢
是的,完全相同的方式,
$manager->getConnection()->getConfiguration()->setLoggerCallable(null);
在夹具中正确调用。
不幸的是,在 Doctrine MongoODM-bundle 4.0 及更高版本中,这种方法不再有效。
最简单的方法是在配置中禁用日志记录,请参阅https://symfony.com/doc/master/bundles/DoctrineMongoDBBundle/config.html
您也可以手动禁用记录器,但您需要doctrine_mongodb.odm.command_logger
服务。
我在 Symfony 4 应用程序中所做的是创建一个别名来启用正确的依赖注入,然后取消注册监听器:
服务.yaml
Doctrine\Bundle\MongoDBBundle\APM\PSRCommandLogger:
alias: "doctrine_mongodb.odm.command_logger"
命令或服务的一些构造函数:
public function __construct(PSRCommandLogger $mongoLogger)
{
$mongoLogger->unregister();
}