为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel - 将控制台输出写入日志文件

Laravel - 将控制台输出写入日志文件

PHP
小怪兽爱吃肉 2021-09-05 20:18:54
我有一个输出一些行的命令:/**  * 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)中运行此命令,并且处理所有文件必须花费几个小时。显然我不想在此期间保持登录状态以查看控制台输出。正如调度任务一样,有什么方法可以“自动”将控制台命令输出写入日志文件?
查看完整描述

2 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

您可以使用screenlinux 命令。 屏幕示例


你可以像这样保存输出


#screen

#php artisan command > /etc/commandResults.log


查看完整回答
反对 回复 2021-09-05
?
桃花长相依

TA贡献1860条经验 获得超8个赞

要将来自 artisan 命令的输出写入日志,您只需调用$this->info()

$this->info('some text');

编辑:

我的错!对不起!

Log::info() 是你想要的。


查看完整回答
反对 回复 2021-09-05
  • 2 回答
  • 0 关注
  • 454 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信