如何停止doctrine来记录查询

时间:2015-01-28 11:41:06

标签: php symfony doctrine-orm

我有一个奇怪的问题,当我检查我的app / log / dev.log时,我几乎可以看到我的dev.log中的所有查询都是实时记录的:

[2015-01-27 06:57:22] doctrine.DEBUG: SELECT t0.username A ....
[2015-01-27 06:57:23] doctrine.DEBUG: SELECT t0.username A ...
[2015-01-27 06:57:23] doctrine.DEBUG: SELECT s0_.id ......

我不知道为什么会这样,因为当我在config.yml中检查monolog时,我也在生产模式下运行网站,这就是我所看到的:

monolog:
    handlers:
        pictures:
            type: stream
            path: %kernel.logs_dir%/pictures_%kernel.environment%.log
            level: info
        instagram:
            type: stream
            path: %kernel.logs_dir%/instagram_%kernel.environment%.log
            level: info

这是我的config_dev.yml的样子:

imports:
    - { resource: config.yml }

framework:
    router:   { resource: "%kernel.root_dir%/config/routing_dev.yml" }
    profiler: { only_exceptions: false }

web_profiler:
    toolbar: true
    intercept_redirects: false

monolog:
    handlers:
        main:
            type:  stream
            path:  %kernel.logs_dir%/%kernel.environment%.log
            level: debug
        firephp:
            type:  firephp
            level: info

assetic:
    use_controller: false

hip_mandrill:
    disable_delivery: true    

任何想法如何发生这种情况?

2 个答案:

答案 0 :(得分:9)

您应该在生产服务器上使用prod env。在prod env doctrine中,默认情况下禁用日志记录。

但是如果你想要完全禁用日志记录(在所有环境中),你需要像这样设置config.yml

doctrine:
    dbal:
        connections:
            conn1:
                driver: ...
                ...
                logging: false
                profiling: false

答案 1 :(得分:6)

我遇到了dev.log环境中生成prod的类似问题。我从日志条目中发现导致我的问题的原因是调用自定义symfony命令的预定cron作业。自生成停止app/console以来,为我的crontab修改了--env=prod的{​​{1}}条目。即。

dev.log

一定错过了本书的那一部分:)