事件.调试,学说.调试,安全性.调试使开发.log文件变得非常大



我在Symfony2上运行一个应用程序。每当我加载页面或控制器时,dev.log 文件都会用这些行填充成千上万:

[2017-10-12 15:26:08] event.DEBUG: Notified event "kernel.response" to listener "SymfonyBridgeMonologHandlerFirePHPHandler::onKernelResponse". [] []
[2017-10-12 15:26:08] event.DEBUG: Notified event "kernel.response" to listener "SensioBundleFrameworkExtraBundleEventListenerCacheListener::onKernelResponse". [] []
[2017-10-12 15:26:08] event.DEBUG: Notified event "kernel.response" to listener "SymfonyComponentHttpKernelEventListenerResponseListener::onKernelResponse". [] []
[2017-10-12 15:26:08] event.DEBUG: Notified event "kernel.response" to listener "SymfonyComponentHttpKernelEventListenerLocaleListener::onKernelResponse". [] []
[2017-10-12 15:26:08] event.DEBUG: Notified event "kernel.response" to listener "SymfonyComponentHttpKernelFragmentFragmentHandler::onKernelResponse". [] []
[2017-10-12 15:26:08] event.DEBUG: Notified event "kernel.response" to listener "SymfonyComponentSecurityHttpRememberMeResponseListener::onKernelResponse". [] []
[2017-10-12 15:26:08] event.DEBUG: Notified event "kernel.response" to listener "SymfonyComponentHttpKernelEventListenerProfilerListener::onKernelResponse". [] []
[2017-10-12 15:26:08] event.DEBUG: Notified event "kernel.response" to listener "SymfonyBundleWebProfilerBundleEventListenerWebDebugToolbarListener::onKernelResponse". [] []
[2017-10-12 15:26:08] event.DEBUG: Notified event "kernel.response" to listener "SymfonyComponentHttpKernelEventListenerStreamedResponseListener::onKernelResponse". [] []
[2017-10-12 15:26:08] event.DEBUG: Notified event "kernel.terminate" to listener "SymfonyBundleSwiftmailerBundleEventListenerEmailSenderListener::onKernelTerminate". [] []
[2017-10-12 15:26:09] event.DEBUG: Notified event "kernel.request" to listener "SymfonyComponentHttpKernelEventListenerProfilerListener::onKernelRequest". [] []
[2017-10-12 15:26:09] event.DEBUG: Notified event "kernel.request" to listener "SymfonyBundleFrameworkBundleEventListenerSessionListener::onKernelRequest". [] []
[2017-10-12 15:26:09] event.DEBUG: Notified event "kernel.request" to listener "SymfonyComponentHttpKernelEventListenerFragmentListener::onKernelRequest". [] []
[2017-10-12 15:26:09] event.DEBUG: Notified event "kernel.request" to listener "SymfonyComponentHttpKernelEventListenerRouterListener::onKernelRequest". [] []
[2017-10-12 15:26:09] request.INFO: Matched route "getVersion" (parameters: "domain": "BID", "id": "7694", "_controller": "SiiStimasBundleControllerUpdateFolderController::getVersion", "_route": "getVersion") [] []
[2017-10-12 15:26:09] event.DEBUG: Notified event "kernel.request" to listener "SymfonyComponentHttpKernelEventListenerLocaleListener::onKernelRequest". [] []
[2017-10-12 15:26:09] event.DEBUG: Notified event "kernel.request" to listener "SymfonyComponentSecurityHttpFirewall::onKernelRequest". [] []
[2017-10-12 15:26:09] security.DEBUG: Read SecurityContext from the session [] []
[2017-10-12 15:26:09] security.DEBUG: Reloading user from user provider. [] []
[2017-10-12 15:26:09] doctrine.DEBUG: SELECT t0.username AS username1, t0.username_canonical AS username_canonical2, t0.email AS email3, t0.email_canonical AS email_canonical4, t0.enabled AS enabled5, t0.salt AS salt6, t0
...thousands and thousands of the kind of same lines

随着时间的推移,这使得文件非常非常大,而且非常烦人。

这是我的 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
#        chromephp:
#            type:  chromephp
#            level: info
assetic:
    use_controller: true
#swiftmailer:
#    delivery_address: me@example.com

可能是什么问题以及如何摆脱?

config_devmonolog 节中,将日志记录级别更改为debug更高级别,例如 info 或"错误"。

monolog:
  handlers:
    main:
        type: stream
        path: '%kernel.logs_dir%/%kernel.environment%.log'
        level: debug
        channels: ['!event']

您可能还希望设置fingers_crossed来保存调试消息,但仅当发生错误时,此处是文档。

另一种方法是禁用特定的错误日志记录通道。在channels下添加['!event', '!doctrine', '!security']以忽略特定渠道:"事件"、"学说"、"安全"。

我会保持调试选项处于启用状态,我将使用文件轮换:

# app/config/config_dev.yml
monolog:
    handlers:
        main:
            type:  rotating_file
            path:  '%kernel.logs_dir%/%kernel.environment%.log'
            level: debug
            # max number of log files to keep
            # defaults to zero, which means infinite files
            max_files: 10

是我目前正在使用的,根本不打扰我,这样我就可以保留调试消息以备不时之需和固定数量的文件。

或。。。。如果您愿意,可以混合使用这两种解决方案。

最新更新