Я нашел хороший способ добавить эту функцию регистрации по этой ссылке:
http://cakephp.1045679.n5.nabble.com/Log-SQL-queries-td1281970.html
По сути, в вашем каталоге cake/libs/model/datasources/dbo/
вы можете создать подкласс dbo, который вы используете. Например, если вы используете драйвер базы данных dbo_mysql.php, вы можете создать новый файл класса с именем dbo_mysql_with_log.php
. Файл будет содержать некоторый код в следующем формате:
App::import('Core', array('Model', 'datasource', 'dbosource', 'dbomysql'));
class DboMysqlWithLog extends DboMysql {
function _execute($sql) {
$this->log($sql);
return parent::_execute($sql);
}
}
В двух словах, этот класс изменяет (то есть переопределяет) функцию _execute
суперкласса для регистрации SQL-запроса перед выполнением любой логики, которую он обычно делает.
Вы можете изменить файл конфигурации app/config/database.php
, чтобы использовать только что созданный драйвер.