2013-11-28 42 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