Я не могу заставить конфигурацию 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 основного обработчика на отладку и оставив все остальное как есть, но мне это решение не нравится. Должен быть способ перезаписать конфигурационный материал, чтобы у меня был только основной обработчик монолога.