【问题标题】:yaml/symfony2: Override configurationsyaml/symfony2:覆盖配置
【发布时间】:2012-05-08 01:31:01
【问题描述】:

我想在我的 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::。如果有人能指出一种覆盖独白设置的方法,我将非常感激。谢谢!

【问题讨论】:

  • 您要发布您的整个 config_test.yml 文件吗?
  • 你应该在文件顶部的 config_test.yml 中输入 config_dev.yml。
  • 这应该被命名为“禁用独白”。当然您想知道如何覆盖配置,但您的实际描述专门询问如何覆盖/禁用独白设置。

标签: php symfony yaml monolog


【解决方案1】:

你试过了吗:

monolog:
    handlers: ~

它应该可以工作(我认为)。 Look here 如果没有处理程序,则不会加载独白。

【讨论】:

  • 也不走运。 test.log 照常写入。
【解决方案2】:

最好将处理程序定义为空数组:

monolog:
    handlers: []

UPD1: logger 有特殊类型:test 和 null,您可以使用它们:

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

【讨论】:

  • 不会改变任何东西。 test.log 一直被写入。
  • 您的 UPD1 工作正常 :) 我摆脱了关卡并更改了类型:type: "none"。我认为这比类型测试更容易理解,但行为是一样的!
  • 更新所有处理程序以键入“test”。
【解决方案3】:

如果您使用的是 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

如您所见,这定义了处理程序mainnested,其中nested 仅用于main 引用。

config_dev.yml 是从config_test.yml 导入的,所以 如果要覆盖测试环境的配置,则需要覆盖 config_test.yml 中的 mainhandler:

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

这将阻止 monolog 创建日志文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-09
    • 1970-01-01
    • 1970-01-01
    • 2011-06-19
    • 2014-05-31
    • 2011-09-24
    • 2017-09-08
    • 2014-07-02
    相关资源
    最近更新 更多