2014年12月10日水曜日

Idiorm & Parisで、SQLクエリのログ

Idiorm & Parisで、SQLクエリのログの取得です。

1ページの処理ステップを全て取得したい場合(Query logging
$sqls = ORM::get_query_log() ;

↓↓↓

// 取得例
Array
(
  [0] => SELECT COUNT(*) AS `count` FROM `table1` 
  [1] => SELECT COUNT(*) AS `count` FROM `table2` 
  [2] => SELECT COUNT(*) AS `count` FROM `table3` 
  [3] => SELECT COUNT(*) AS `count` FROM `table4` 
  [4] => SELECT COUNT(*) AS `count` FROM `table5` 
)
システム全体で取得したい場合(Query logger
ORM::configure('logging', true);
ORM::configure('logger', function($log_string, $query_time) {
  // $log_string にSQLクエリが、$query_timeに処理時間が入ります。
  echo "<p>" . $log_string . ' in ' . $query_time . "</p>\n";
});

↓↓↓

// 取得例
SELECT COUNT(*) AS `count` FROM `table1` in 8.5115432739258E-5
SELECT COUNT(*) AS `count` FROM `table2` in 7.2956085205078E-5
SELECT COUNT(*) AS `count` FROM `table3` in 0.00012397766113281
SELECT COUNT(*) AS `count` FROM `table4` in 7.2956085205078E-5
SELECT COUNT(*) AS `count` FROM `table5` in 6.9141387939453E-5
どちらの場合も「ORM::configure('logging', true);」として、ログ利用を有効な設定にして使う必要があるようです。

参考サイト
Query logging(Configuration Idiorm documentation)
Query logger(Configuration Idiorm documentation)

0 件のコメント:

コメントを投稿