如何从 Symfony2 中的包覆盖全局 Monolog 配置

How to override global Monolog configuration from a bundle in Symfony2

我想从我的包中覆盖全局 config.yml Monolog 配置。然而,当我尝试写类似的东西时:

monolog:
    # some new configuration params

我收到这个错误:

[Symfony\Component\DependencyInjection\Exception\InvalidArgumentException]
There is no extension able to load the configuration for "monolog"

有没有办法在不添加编译器传递的情况下修改配置?

我知道我可能来晚了,但我已经找到了解决方案,因为我也想这样做。

在你的 bundle 扩展加载方法中,你应该注册 MonologExtension,然后你可以在你的 bundle 配置文件中加载 monolog 配置:

public function load(array $configs, ContainerBuilder $container)
{
    $configuration = new Configuration();
    $config        = $this->processConfiguration($configuration, $configs);

    // Register extension to load monolog configuration in bundle.
    $container->registerExtension(new MonologExtension());

    $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
    $loader->load('config_' . $container->getParameter('kernel.environment') . '.yml');
}