如何阻止Symfony持续向dev.log写入调试日志?
解决Symfony持续写入dev.log的问题
问题原因
你的配置中已将main handler改为rotating_file类型,但Symfony dev环境默认的Monolog配置里仍存在一个默认的stream类型handler(写入dev.log,级别debug)。这个默认handler未被覆盖,导致两个handler同时工作:你的rotating_file生成带日期的日志文件,而默认handler持续写入dev.log,最终造成文件快速膨胀。
解决方案
修改dev环境专属的Monolog配置文件(config/packages/dev/monolog.yaml),完全替换默认的handlers,确保只有你定义的handler生效:
monolog: channels: ['database_activity'] handlers: # 替换默认的stream类型main handler为rotating_file main: type: rotating_file path: "%kernel.logs_dir%/%kernel.environment%.log" level: info max_files: 10 formatter: monolog.formatter.json channels: [ "!event", "!doctrine" ] console: type: console process_psr_3_messages: false level: info channels: ["!event", "!doctrine", "!console", "!database_activity"]
额外检查项
- 确认没有其他配置文件(如
config/services.yaml或第三方bundle配置)添加了额外的Monolog handler。 - 检查代码中是否有直接调用Monolog
debug()方法且未被排除的channel,避免这类日志绕过配置写入文件。 - 确保所有handler的
level都设置为info或更高,彻底拦截debug级别的日志输出。
内容的提问来源于stack exchange,提问作者Joel Joel Binks
相关产品推荐
相关产品推荐

