通常のhttpリクエスト中にエラーが発生すると、Symfony2はすべてをログに記録し(ログレベルに応じて)、dev.logまたはapp.logで確認できます。
ただし、カスタムコマンドの実行中にエラーが発生した場合、何もログに記録されません。標準出力に赤いメッセージが表示されるだけで、バックトレースすらありません。
最初のケースのように、すべてのエラーをログに記録するにはどうすればよいですか?
通常のhttpリクエスト中にエラーが発生すると、Symfony2はすべてをログに記録し(ログレベルに応じて)、dev.logまたはapp.logで確認できます。
ただし、カスタムコマンドの実行中にエラーが発生した場合、何もログに記録されません。標準出力に赤いメッセージが表示されるだけで、バックトレースすらありません。
最初のケースのように、すべてのエラーをログに記録するにはどうすればよいですか?
--verbose
コマンドの実行時にオプションを追加すると、バックトレースが表示されます。
必要に応じて、コンテナからモノログロガーをキャッチ\Exception
して使用できると思います(コマンドはDICにアクセスできます)。
Symfony\Component\Console\Application
クラスとメソッドを拡張し、そこでエラーをログに記録するなど、必要に応じて他の方法でも実行できると思いますがrenderException
、実際には実行しません。コマンド/アプリケーションAPIでそれが可能になることを確認してください。
私は自分でこれをしなければなりませんでした、Symfony2はそれをしません。
すべてのエラーと例外をキャッチしてログに記録するBaseCommandを作成して拡張します。