我在 Symfony2 上运行一个应用程序。每当我加载页面或控制器时,dev.log 文件就会充满成千上万这样的行:
[2017-10-12 15:26:08] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Bridge\Monolog\Handler\FirePHPHandler::onKernelResponse". [] []
[2017-10-12 15:26:08] event.DEBUG: Notified event "kernel.response" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\CacheListener::onKernelResponse". [] []
[2017-10-12 15:26:08] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\ResponseListener::onKernelResponse". [] []
[2017-10-12 15:26:08] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelResponse". [] []
[2017-10-12 15:26:08] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\Fragment\FragmentHandler::onKernelResponse". [] []
[2017-10-12 15:26:08] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\Security\Http\RememberMe\ResponseListener::onKernelResponse". [] []
[2017-10-12 15:26:08] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\ProfilerListener::onKernelResponse". [] []
[2017-10-12 15:26:08] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Bundle\WebProfilerBundle\EventListener\WebDebugToolbarListener::onKernelResponse". [] []
[2017-10-12 15:26:08] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\StreamedResponseListener::onKernelResponse". [] []
[2017-10-12 15:26:08] event.DEBUG: Notified event "kernel.terminate" to listener "Symfony\Bundle\SwiftmailerBundle\EventListener\EmailSenderListener::onKernelTerminate". [] []
[2017-10-12 15:26:09] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\ProfilerListener::onKernelRequest". [] []
[2017-10-12 15:26:09] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Bundle\FrameworkBundle\EventListener\SessionListener::onKernelRequest". [] []
[2017-10-12 15:26:09] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\FragmentListener::onKernelRequest". [] []
[2017-10-12 15:26:09] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest". [] []
[2017-10-12 15:26:09] request.INFO: Matched route "getVersion" (parameters: "domain": "BID", "id": "7694", "_controller": "Sii\StimasBundle\Controller\UpdateFolderController::getVersion", "_route": "getVersion") [] []
[2017-10-12 15:26:09] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest". [] []
[2017-10-12 15:26:09] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Component\Security\Http\Firewall::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: [email protected]
可能是什么问题以及如何解决?
在
config_dev
的 monolog
部分,将 debug
日志记录级别更改为更高级别,例如 info
或“错误”。
monolog:
handlers:
main:
type: stream
path: '%kernel.logs_dir%/%kernel.environment%.log'
level: debug
channels: ['!event']
您可能还想设置
fingers_crossed
来保存调试消息,但仅当发生错误时,here 是文档。
另一种方法是禁用特定的错误记录通道。 在
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
这是我目前正在使用的,根本不会打扰我,这样我可以保留调试消息以备不时之需,并保留固定数量的文件。
或者...如果您愿意,您可以混合使用两种解决方案。