php - How can I display Exception trace in laravel console command? -
i'm using laravel 5.1 create console based application. during development display exception trace when error occurs. however, if use -v -vv or -vvv option in php artisan
, don't exception trace custom commands. set app_debug=true
in .env
, still no exception trace.
output of php artisan some:unknowncommand
is:
[invalidargumentexception] there no commands defined in "some" namespace.
output of php artisan -v some:unknowncommand
is:
[invalidargumentexception] there no commands defined in "some" namespace. exception trace: () @ /users/dirkpostma/dropbox/domains/dpepp/vendor/symfony/console/application.php:501 symfony\component\console\application->findnamespace() @ /users/dirkpostma/dropbox/domains/dpepp/vendor/symfony/console/application.php:535 symfony\component\console\application->find() @ /users/dirkpostma/dropbox/domains/dpepp/vendor/symfony/console/application.php:192 symfony\component\console\application->dorun() @ /users/dirkpostma/dropbox/domains/dpepp/vendor/symfony/console/application.php:126 ...
now, created simple console command called dp:test, following handle function:
/** * execute console command. * * @return mixed */ public function handle() { generate error here }
output of php artisan dp:test
is:
[symfony\component\debug\exception\fatalerrorexception] syntax error, unexpected 'error' (t_string)
output of php artisan -v dp:test
same. output of php artisan -vvv dp:test
same.
the log file show exception trace, somehow should possible display in cli. don't see filename , linenumer error occurs... how can take care of this?
thanks in advance!
edit:
is digged bit further. in case use in command:
public function handle() { throw new \exception("test exception"); }
and issue command php artisan -v dp:test
, error trace printed. trace not printed when exception thrown due php error. in illuminate/foundation/bootstrap/handleexceptions.php
method bootstrap
php errors converted exceptions. when occurs, exception thrown, -v somehow ignored when printing. inconvenient because makes debugging cli apps hard.
i think solution can found in vendor/symfony/console/application.php
, method renderexception
.
i'm going dig further later, unless else can point solution faster me :-)
i found reason why -v ignored:
in illuminate/foundation/bootstrap/handleexceptions.php
, renderforconsole
methode instantiates consoleoutput
object, default settings, not taking account verbosity settings user asked for:
protected function renderforconsole($e) { $this->getexceptionhandler()->renderforconsole(new consoleoutput, $e); }
for reason, whatever -v -vv or -vvv set, $output->getverbosity()
in vendor/symfony/console/application.php
lower outputinterface::verbosity_verbose
, reason, stack trace not printed.
i start issue on github this, because think it's more convenient if errors shown in cli if user sets -v.
Comments
Post a Comment