Laravel - записывает вывод консоли в файлы журнала - PullRequest
2 голосов
/ 28 июня 2019

У меня есть команда, которая выводит несколько строк:

/**
  * 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 ]

2 голосов
/ 28 июня 2019

Вы можете использовать команду screen linux. Пример экрана

и вы можете сохранить вывод как

#screen
#php artisan command > /etc/commandResults.log

0 голосов
/ 28 июня 2019

Чтобы записать вывод в ваши журналы из команд ремесленника, вы можете просто позвонить $this->info():

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

РЕДАКТИРОВАТЬ:

Мой плохой!Извините!

Log::info() - это то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...