在Laravel工匠命令中使用verbose

时间:2014-12-22 22:11:00

标签: laravel artisan verbosity

有没有办法检测用户在创建自定义工匠命令时指定的详细级别?我在文档中没有看到任何相关内容。

2 个答案:

答案 0 :(得分:24)

getVerbosity()中有Symfony\Component\Console\Output\OutputInterface函数,您可以使用$this->getOutput()来检索输出对象。

$verbosityLevel = $this->getOutput()->getVerbosity();

然后,您可以将级别与OutputInterface中定义的常量进行比较。例如:

if($verbosityLevel >= OutputInterface::VERBOSITY_VERBOSE){
    // show verbose messages
}

答案 1 :(得分:5)

您可以根据文档使用不同的详细程度:

https://laravel.com/api/5.6/Illuminate/Console/OutputStyle.html#method_isQuiet

isQuiet()       - no verbosity is set                                   (no option set)
isVerbose()     - if the level is quiet or verbose                      (-v)
isVeryVerbose() - if the level is very verbose, verbose or quiet        (-vv)
isDebug()       - if the level is debug, very verbose, verbose or quiet (-vvv)

例如在您的命令$this->getOutput()->isQuiet()

这也会影响writeLn()。如果您要编写$this->line('Serious message', null, 'vv');,则该消息将显示-vv-vvv选项,但不显示-v和静默模式,因为对于那些级别的日志记录来说,它“太详细”