2012-08-28 13 views

Respuesta

6

Se puede activar el registro de consultas en el servidor MySQL (supongo que es ella): en /etc/mysql/my.ini (lugar habitual):

[mysqld] 
log=/tmp/mysql.log 

entonces lee este archivo donde se encuentra cada consulta emitida.

+0

Oh sí, duh. Gracias. –

+0

Y para los no iniciados, es posible que deba ejecutar 'sudo service mysql restart' después de actualizar el archivo de configuración. –

+0

esto no siempre es conveniente cuando su base de datos requiere mucha información. Será bueno tener una forma de hacer un poco de registro programáticamente – Dennis

3

Se podría probar el SQL-Logger:

$em->flush(); // to write cached stuff down and isolate the following 

// activate logger 
$em->getConnection() 
    ->getConfiguration() 
    ->setSQLLogger(new \Doctrine\DBAL\Logging\EchoSQLLogger()); 

$foo = new Foo(); 
$foo->setName('bar'); 
$em->persist($foo); 
$em->flush(); 

// disable logger 
$em->getConnection() 
    ->getConfiguration() 
    ->setSQLLogger(null); 

Funciona con otros DBMS que MySQL también. También hay otras posibilidades para escribir en archivos. Mira aquí:

https://www.brunsware.de/blog/symfony/monolog-doctrine-logfile.html

http://vvv.tobiassjosten.net/symfony/logging-doctrine-queries-in-symfony2/

Cuestiones relacionadas