私はコードに従っているので、実際にはコマンドのログを有効にするオプションはありません。 app/console
では、このコードです:
use Symfony\Bundle\FrameworkBundle\Console\Application;
...
$application = new Application($kernel);
$application->run();
それは/ catchブロックを試してみてくださいありますSymfony\Component\Console\Application::run()
する呼び出します。例外のメソッドではrenderException()
が呼び出されますが、ログはどこにも発生しません。
また、常にデフォルトではapp/console
が終了し、例外時にエラーコードが出力されます。
Application
クラスを拡張してSymfony\Bundle\FrameworkBundle\Console\Application
に拡張し、app/console
を変更して使用することができます。 run()
メソッドをオーバーライドしてエラーログを追加するよりも、このような
それとも、単にapp/console
を変更し、処理することができerros:
// $application->run();
$application->setCatchExceptions(false);
try {
$output = new Symfony\Component\Console\Output\ConsoleOutput();
$application->run(null, $output);
} catch (Exception $e) {
... error logging ...
$application->renderException($e, $output);
$statusCode = $e->getCode();
$statusCode = is_numeric($statusCode) && $statusCode ? $statusCode : 1;
exit($statusCode);
}
ありがとうございます。私は、コンソール&index.phpファイルを起動しますが、アプリケーションクラスで深く掘り下げてください。 しかし、web&consoleのアプリケーションクラスは同じ動作をしているようです。 – Sawered