2013-11-28 73 views
4

在開發環境中Symfony2默認將SQL查詢記錄到dev.log。爲了進行性能分析和調試,我想記錄一個查詢的執行時間以及。這一定是可能的,因爲「真實頁面」的分析器顯示每個查詢旁邊的執行時間。我認爲正確的類是DBalLogger +一個秒錶實例,但我不知道如何以及在哪裏配置這些服務正確(monolog?doctrine?dbal.connection?samples say我們必須使用setSQLLogger,但我可以在我的config_dev中執行此操作.yml?)Symfony2:如何將查詢持續時間記錄到日誌/ dev.log

回答

1

你可以注入獨白服務,然後手動添加的時間參考

$logger = $this->get('logger'); 
$timestart = microtime(true); 
// Your query goes here 
$timeend = microtime(true); 
$logger->info("Query time: " . (($timeend - $timestart) * 1000) . "s"); 
+0

肯定,但我想這樣做,對於每一個* *查詢,自動:) – Stefan

+0

可以擴展該方法的類,然後在必要時調整它 –

+0

順便說一句@MaximGeerinck microtime已經返回時間在幾秒鐘內,你不需要使用* 1000. microtime返回與microsec時間不以微秒爲單位 – Tom