如何停止doctrine来记录查询

adi*_*dit 4 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 ......
Run Code Online (Sandbox Code Playgroud)

我不知道为什么会发生这种情况,因为当我在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
Run Code Online (Sandbox Code Playgroud)

这是我的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    
Run Code Online (Sandbox Code Playgroud)

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

Mic*_*bov 10

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

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

doctrine:
    dbal:
        connections:
            conn1:
                driver: ...
                ...
                logging: false
                profiling: false
Run Code Online (Sandbox Code Playgroud)


小智 6

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

app/console --env=prod custom:command 
Run Code Online (Sandbox Code Playgroud)

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