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