我有一条输出某些行的命令:
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$this->line('');
$this->info('--------------------------------------------------------');
$this->info('----------------- Compress documents -------------------');
$this->info('--------------------------------------------------------');
$this->line('');
$progressBar = $this->output->createProgressBar(3);
$this->info('Selecting files...');
// ...
$progressBar->advance();
$this->info('Processing...');
// ...
$progressBar->advance();
$this->info('Moving files...');
// ...
$progressBar->advance();
$this->info('--------------------------------------------------------');
$this->info('------------------------ Result ------------------------');
$this->info('--------------------------------------------------------');
// ...
$this->info('Output quality: '.$resolution.'%');
$this->info('Processed files: '.sizeof($files));
$this->info('Original size: '.number_format($originalPathSize, 3).'MB');
$this->info('Compressed size:'.number_format($compressedPathSize, 3).'MB');
$this->info('Improvement: '.number_format($compressedPathSizeDiff, 3).'MB ('.number_format($compressedPathSizeDiffPercent, 3).'%)');
$this->info('Total time: '.$timeFormatted);
// ...
$this->table($headers, $rows);
$this->info('Ready!');
}
它就像一种魅力。
问题在于,现在我需要在生产服务器(通过SSH)中运行此命令,并且它必须花费几个小时来处理所有文件。显然,我不想在此期间保持登录状态以查看控制台输出。
就像调度任务一样,有什么方法可以将控制台命令输出“自动”写入日志文件?
答案 0 :(得分:2)
您可以使用screen
linux命令。
Screen Example
您可以将输出保存为
#screen
#php artisan command > /etc/commandResults.log
答案 1 :(得分:-2)
要将工匠命令的输出写入日志,您只需调用$this->info()
:
$this->info('some text');
编辑:
我不好!抱歉!
Log::info()
是您想要的。