我想在config_test.yml中覆盖config_dev.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设置,我将非常感激。谢谢!
答案 0 :(得分:8)
最好将处理程序定义为空数组:
monolog:
handlers: []
UPD1:有特殊类型的记录器:test和null,你可以使用它们:
monolog:
handlers:
test:
type: test
level: debug
答案 1 :(得分:3)
你的config_dev.yml
看起来像这样的monolog开箱即用:
# 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创建日志文件。
答案 2 :(得分:1)