我无法让Symfony2配置正确地覆盖其他配置文件中的值。以下是问题:
我有一个名为“staging”的新环境,我希望大部分内容使用config_prod.yml中的内容,但具有另一个日志级别(我希望它与开发环境一样,将所有日志记录到文件中)。以下是我使用的配置信息:
config_prod.yml:
imports:
- { resource: config.yml }
monolog:
handlers:
main:
type: fingers_crossed
action_level: error
handler: nested
nested:
type: stream
path: %kernel.logs_dir%/%kernel.environment%.log
level: debug
config_staging.yml:
imports:
- { resource: config_prod.yml }
monolog:
handlers:
main:
type: stream
path: %kernel.logs_dir%/%kernel.environment%.log
level: debug
nested: ~
从我的角度来看,嵌套的记录器现在为 null,主要记录到指定的文件中。实际上发生的是他会把每条消息都记录两次!当我将其用于 config_staging.yml 时也会发生同样的情况:
imports:
- { resource: config_prod.yml }
monolog:
handlers:
main:
type: stream
path: %kernel.logs_dir%/%kernel.environment%.log
level: debug
handler: ~
nested: ~
我找到了一种解决办法,将主处理程序的action_level设置为debug,其他内容保持不变,但我不喜欢这种解决方案。一定有一种方法可以覆盖配置信息,使我只有主要的monolog处理程序。