ec-cube
ec-cube copied to clipboard
[4.2] monolog.yml に stream を追加
概要(Overview・Refs Issue)
本番環境の出力先は stream が推奨されている https://symfony.com/doc/5.4/logging.html#where-logs-are-stored
方針(Policy)
monolog.yml に stream を追加
実装に関する補足(Appendix)
APP_ENV=dev
の場合は symfony/cli で実行すると、 SQLの実行内容も確認できる
テスト(Test)
symfony/cli にてログ出力を確認
相談(Discussion)
マイナーバージョン互換性保持のための制限事項チェックリスト
- [ ] 既存機能の仕様変更はありません
- [ ] フックポイントの呼び出しタイミングの変更はありません
- [ ] フックポイントのパラメータの削除・データ型の変更はありません
- [ ] twigファイルに渡しているパラメータの削除・データ型の変更はありません
- [ ] Serviceクラスの公開関数の、引数の削除・データ型の変更はありません
- [ ] 入出力ファイル(CSVなど)のフォーマット変更はありません
レビュワー確認項目
- [ ] 動作確認
- [ ] コードレビュー
- [ ] E2E/Unit テスト確認(テストの追加・変更が必要かどうか)
- [ ] 互換性が保持されているか
- [ ] セキュリティ上の問題がないか
- [ ] 権限を超えた操作が可能にならないか
- [ ] 不要なファイルアップロードがないか
- [ ] 外部へ公開されるファイルや機能の追加ではないか
- [ ] テンプレートでのエスケープ漏れがないか
@nanasess リンク先のドキュメントを読みましたが、「APP_ENV=prodのデフォルトは標準エラーになっている。これはディスク書き込みできないコンテナ化された環境では最適」で必ずしも本番に推奨とはならないと思うのですが、どうでしょうか?
@kiy0taka 最近は、monolog-bundle を追加した時に symfony/flex で自動的に stream が設定されますし、 https://github.com/symfony/recipes/blob/b3395a2477b6d58089f92ef3a0d2e58226825a3a/symfony/monolog-bundle/3.1/config/packages/prod/monolog.yaml#L11-L14
symfony/demo でも、出力先に stream が設定されていました https://github.com/symfony/demo/blob/1a7777fa6971c7b28938ac48e8df61d1b2427b1b/config/packages/prod/monolog.yaml#L9-L13
特にデメリットがなければ、追加しておこうくらいに思っていましたがいかがでしょう? デメリットありそうでしたらクローズしていただいても大丈夫です。
@nanasess monolog-bundleやsymfony/demoのデフォルトはstreamですがpathを指定してるのでファイル出力になると思います。ファイル出力するのであれば現状のrotating_fileの方が良いと思います。 追加された変更はpath指定がないので標準エラーになるという認識なのですが、これのメリットは環境によると思います。
@kiy0taka path を省略すると %kernel.logs_dir%/%kernel.environment%.log
と標準エラー出力の両方に出力されるようです。これだと当初の意図と異り、あまりよろしくないので、一旦クローズします