【问题标题】:Symfony2: how to log query duration to logs/dev.logSymfony2:如何将查询持续时间记录到 logs/dev.log
【发布时间】:2013-12-14 08:50:22
【问题描述】:

在开发环境中 Symfony2 默认将 SQL 查询记录到 dev.log。出于分析和调试目的,我还想记录查询的执行时间。这必须是可能的,因为“真实页面”的分析器会在每个查询旁边显示执行时间。我认为正确的类是DBalLogger + 秒表实例,但我不知道如何以及在何处正确配置这些服务(独白?学说?dbal.connection?samples say 我们必须使用 setSQLLogger 但我在哪里可以做在我的 config_dev.yml 中?)

【问题讨论】:

    标签: php symfony logging doctrine-orm


    【解决方案1】:

    您可以注入独白服务,然后手动添加时间参考

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

    【讨论】:

    • 当然,但我想自动为 每个 查询执行此操作:)
    • 您可以将方法扩展为它的类,然后在必要时对其进行调整
    • BTW @MaximGeerinck microtime 已经以秒为单位返回时间,您不需要使用 * 1000。microtime 以微秒而不是微秒为单位返回时间
    • 正确,true 使其以秒为单位返回,因此*1000 将导致微秒
    猜你喜欢
    • 2014-08-05
    • 2020-09-01
    • 2017-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多