Поскольку я следовал коду, на самом деле нет такой опции, чтобы включить ведение журнала для команд.В app/console
есть этот код:
use Symfony\Bundle\FrameworkBundle\Console\Application;
...
$application = new Application($kernel);
$application->run();
Он вызывает Symfony\Component\Console\Application::run()
, в котором есть блок try / catch.При исключении вызывается метод renderException()
, но нигде не ведется регистрация.
Также обратите внимание, что app/console
всегда по умолчанию завершается с кодом ошибки при исключении.
Вы можете создать свой собственный Application
расширение класса Symfony\Bundle\FrameworkBundle\Console\Application
и изменение app/console
для его использования.Чем вы можете переопределить метод run()
и добавить регистрацию ошибок.
Или вы можете изменить просто app/console
и обрабатывать ошибки следующим образом:
// $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);
}