yaml / symfony2: переопределить конфигурации

Я хочу переопределить некоторые конфигурации из config_dev.yml в моей config_test.yml. Итак, представьте следующую часть в файле config_dev.yml:

monolog: handlers: main: type: stream path: %kernel.logs_dir%/%kernel.environment%.log level: debug firephp: type: firephp level: info 

В моей тестовой среде я вообще не хочу регистрировать. Поэтому я попробовал

 monolog: ~ 

без эффекта. Я также пробовал:

 monolog: handlers: main: ~ firephp: ~ 

снова без какого-либо эффекта. Затем я протестировал

 monolog: handlers: main: type: ~ path: ~ level: ~ firephp: type: ~ level: ~ 

и я получаю ErrorException Couldn't find constant Monolog\Logger:: . Если бы кто-нибудь мог указать способ переопределить монологические настройки, я бы очень это оценил. Благодаря!

Лучше определить обработчики как пустой массив:

 monolog: handlers: [] 

UPD1: Существуют специальные типы регистраторов: test и null, вы можете использовать их:

 monolog: handlers: test: type: test level: debug 

Если вы используете Symfony2 Standard Edition

Ваш config_dev.yml выглядит примерно так для монолога из коробки:

 # config_dev.yml monolog: handlers: main: type: fingers_crossed action_level: error handler: nested nested: type: stream path: %kernel.logs_dir%/%kernel.environment%.log level: debug 

Как вы можете видеть, это определяет main обработчик и nested где nested используется только потому, что он ссылается на main .

config_dev.yml импортируется из config_test.yml поэтому, если вы хотите переопределить конфигурацию для тестовой среды, вам нужно переопределить main обработчик в config_test.yml :

 # config_text.yml monolog: handlers: main: type: test 

Это заставит монолог создавать файл журнала.

Ты пробовал:

 monolog: handlers: ~ 

Он должен работать (я думаю). Смотрите здесь Без обработчиков, монолог не загружается.