Depende de cómo quieras auditarlos. Si está buscando por página, habilitar el perfilador estará bien. Esto muestra todas las consultas ejecutadas en la carga de esa página, así como el tiempo necesario para ejecutarlas. Vea el enlace a continuación en el generador de perfiles.
http://codeigniter.com/user_guide/general/profiling.html
Si desea registrar todas las consultas a medida que ocurren y luego leer el archivo de registro más tarde, tendrá que ampliar la clase de la base de datos. Si este es el caso, comente y actualizaré/extenderé mi respuesta aún más.
Ampliación para sobrescribir query()
Extienda MY_Loader.php en /application/core/ e inserte esta función
function database($params = '', $return = FALSE, $active_record = NULL)
{
// Grab the super object
$CI =& get_instance();
// Do we even need to load the database class?
if (class_exists('CI_DB') AND $return == FALSE AND $active_record == NULL AND isset($CI->db) AND is_object($CI->db)) {
return FALSE;
}
require_once(BASEPATH.'database/DB'.EXT);
// Load the DB class
$db =& DB($params, $active_record);
$my_driver = config_item('subclass_prefix').'DB_'.$db->dbdriver.'_driver';
$my_driver_file = APPPATH.'core/'.$my_driver.EXT;
if (file_exists($my_driver_file)) {
require_once($my_driver_file);
$db = new $my_driver(get_object_vars($db));
}
if ($return === TRUE) {
return $db;
}
// Initialize the db variable. Needed to prevent
// reference errors with some configurations
$CI->db = '';
$CI->db = $db;
}
Luego crea /application/core/MY_DB_mysql_driver.php
Luego, dentro de eso, puede sobrescribir query()
function query($sql, $binds = FALSE, $return_object = TRUE) {
// Do your stuff
return parent::query( $sql, $binds, $return_object );
}
Obviamente, reemplace mysql en el nombre del archivo por cualquier controlador de base de datos que esté usando/intentando extender.
Esto también funcionará con Active Record como todos los get()
los métodos llaman a query()
del controlador para ejecutar sus consultas.