5

Symfony コマンドの実行中に、メッセージを別のファイルに記録したいと考えています。Symfony と Monolog のドキュメントを読みましたが、ここで説明したように動作するはずです。(「ドクトリン」、「イベント」、... チャネルからのメッセージは引き続きメイン ハンドラによってログに記録されることはわかっていますが、それは私にとっては問題ではありません)

config.ymlの中に、私はこれを持っています:

monolog:
    channels: [commandline]
    handlers:
        main:
            type:  stream
            path:  "%kernel.logs_dir%/%kernel.environment%.main.log"
            level: debug
            channels: [!commandline]
        commandline:
            type:  stream
            path:  "%kernel.logs_dir%/%kernel.environment%.commandline.log"
            level: debug
            channels: commandline
        stdout:
            type:  stream
            path:  "php://stdout"
            level: debug
            channels: commandline
        mail:
            type:         stream
            action_level: alert
            handler:      buffered_mail
        buffered_mail:
            type:    buffer
            handler: swift
        swift:
            type:       swift_mailer
            from_email: some@email.com
            to_email:   some@email.com
            subject:    "Something went wrong"
            level:      alert

dev.main.logと の 2 つのログ ファイルがあると予想していますdev.commandline.log。しかし、私はまだ 3 番目のログ ファイルを持っています:すべてのdev.logメッセージを記録します。そのログハンドラーが定義されている場所と、それがログに記録されないようにする方法が見つからないようです...

誰かが私を正しい方向に向けることができれば、それは素晴らしいことです!

ところで、私は使用しています:

  • symfony 2.3
  • monolog バンドル 2.4

編集

monologセクションはありません。config_dev.yml

4

2 に答える 2

5

から削除 monolog.handlers.mainしますconfig_dev.yml

それは通常含まれています path: "%kernel.logs_dir%/%kernel.environment%.log"

config _dev.yml (デフォルト)

monolog:
    handlers:
        main:   # <- remove this handler
            type:   stream
            path:   "%kernel.logs_dir%/%kernel.environment%.log" #<- logs/dev.log
            level:  debug

mainこの構成ファイルからハンドラーを削除します。

于 2013-12-05T10:33:51.507 に答える