如何在symfony 2和doctrine 2中自定义sql日志?

问题描述:

我需要添加SQL日志记录才能在本机WebProfileBundle中工作。 当我在应用程序配置中做一个默认连接时,我在我的日志中看到sql 查询。但是我的应用程序使用许多连接到许多db服务器,所以我不能将所有可能的连接添加到配置文件。如何在symfony 2和doctrine 2中自定义sql日志?

创建运行时连接,即:

$config = array(
     'user' => 'user1', 
     'password' => 'pass1', 
     'driver' => 'pdo_mysql', 
     'port' => 3306, 
); 
$conn = DriverManager::getConnection($config); 

那么我想,应该是命令是这样的

$conn->getConfiguration()->getSQLLogger($someLoggerObject); 

我试着DependencyInjection来解决这个问题,采取了 DoctrineBundle为例。但没有运气。

活代码或链接到适当的文件,任何帮助将是巨大的

我有这个在我的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,但我希望这可以帮助。