我想在我的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: ~
我得到一个错误异常Couldn't find constant Monolog'Logger::
.如果有人能指出一种覆盖单语设置的方法,我将不胜感激。谢谢!
最好将处理程序定义为空数组:
monolog:
handlers: []
UPD1:有特殊类型的记录器:test 和 null,您可以使用它们:
monolog:
handlers:
test:
type: test
level: debug
如果您使用的是 Symfony2 标准版
您的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
进口的,所以如果要覆盖测试环境的配置,则需要覆盖 config_test.yml
中的main
处理程序:
# config_text.yml
monolog:
handlers:
main:
type: test
这将阻止 monolog 创建日志文件。
你试过吗:
monolog:
handlers: ~
它应该有效(我认为)。看这里如果没有处理程序,则不会加载单log。