symfony2 yaml: overwrite configuration

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

6
задан Sgoettschkes 23 December 2011 в 13:42
поделиться