6

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::ます。モノログ設定を上書きする方法を誰かが指摘できれば、とてもありがたいです。ありがとう!

4

3 に答える 3

8

ハンドラーを空の配列として定義することをお勧めします。

monolog:
    handlers: []

UPD1:特別なタイプのロガーがあります:テストとヌル、あなたはそれらを使うことができます:

monolog:
    handlers:
        test:
            type:  test
            level: debug
于 2012-06-01T09:18:42.603 に答える
3

Symfony2StandardEditionを使用している場合

箱から出してモノログ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を定義し、 nestedwherenestedは。によって参照されているためにのみ使用されmainます。

config_dev.ymlはからインポートされるため、テスト環境の構成をオーバーライドする場合は、次のハンドラーconfig_test.ymlをオーバーライドする必要があります。mainconfig_test.yml

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

これにより、monologによるログファイルの作成が停止します。

于 2012-11-12T16:50:19.743 に答える
1

やってみました:

monolog:
    handlers: ~

それはうまくいくはずです(私は思います)。 ここを見てください ハンドラーがないと、monologはロードされません。

于 2012-05-30T09:43:36.080 に答える