如何在 symfony 2 和教义 2 中自定义 sql 日志?
Posted
技术标签:
【中文标题】如何在 symfony 2 和教义 2 中自定义 sql 日志?【英文标题】:How to make custom sql log in symfony 2 and doctrine 2? 【发布时间】:2011-04-27 15:33:10 【问题描述】:我需要添加 sql 日志记录才能在本机 WebProfileBundle 中工作。 当我在应用程序配置中执行一个默认连接时,我看到了 sql 在我的日志中查询。但是我的应用程序使用许多连接到许多数据库 服务器,所以我无法将所有可能的连接添加到配置文件。
我创建运行时连接,即:
$config = array(
'user' => 'user1',
'password' => 'pass1',
'driver' => 'pdo_mysql',
'port' => 3306,
);
$conn = DriverManager::getConnection($config);
那我想,应该是这样的命令
$conn->getConfiguration()->getSQLLogger($someLoggerObject);
我尝试用 DependencyInjection 解决这个问题, 以 DoctrineBundle 为例。但是没有运气。
任何有关实时代码或正确文档链接的帮助都会很棒
【问题讨论】:
【参考方案1】:我的 conf 中有这个:
$config = new Configuration;
/** configuration stuff */
$config->setSQLLogger(MyLogger::getInstance());
$connectionOptions = array(
'driver' => 'pdo_mysql',
'user' => DB_USER,
'password' => DB_PASS,
'host' => DB_HOST,
'dbname' => DB_NAME,
'charset' => 'utf8',
'driverOptions' => array(
'charset' => 'utf8'
)
);
$em = EntityManager::create($connectionOptions, $config);
我使用 Zend + Doctrine2 并且在我的引导程序中,我的记录器是一个单例(这就是 getInstance 的原因)。我从未使用过 DriverManager,但我希望这会有所帮助。
【讨论】:
以上是关于如何在 symfony 2 和教义 2 中自定义 sql 日志?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 symfony 在教义查询构建器中选择表之间的特定连接?