PHP
CakePHP

CakePHP2 SQLをログで確認したい

発行されたSQLをログに吐き出したい。
debugkitは便利だけど、ピンポイントで確認したい時もある。
いつもやり方を忘れてしまうのでメモ。

ログ出力

$this->log($msg, 'debug');

コントローラーでもモデルでも好きなところに書く。
logメソッドの第二引数に書き込みたいログファイル名を指定すればよい。
ちなみにログファイルのパスは/app/tmp/logs/debug.log

SQLのダンプ

$model->getDataSource()->getLog();

デバッグレベルが2以上でないと出力されないので注意。

まとめ

$this->log(
    $model->getDataSource()->getLog(),
    'sql'
);

ちなみに画面に表示したい場合は、

debug($model->getDataSource()->getLog());