簡體   English   中英

打印/保存完整的 Laravel Artisan 命令輸出(來自調試行的大數組)到文件

[英]Print/Save complete Laravel Artisan Command output(large array from debug line) to file

我在 Laravel 6.x 項目中工作,我在 Artisan 命令中添加了調試行,以將從該行生成的大數組作為輸出放入文本文件中。

它看起來幾乎像上述命令的handle方法中的以下代碼:

....
if(!$dataArray->isEmpty())
{
    foreach ($dataArr as $dataEle)
    {
        $dataArrToPrnt[] = $dataEle->toArray();
        ....
    }
}
die(var_dump($dataArrToPrnt));
....

但問題是dataArray很大,所以在輸入幾次之后,命令輸出會跳過其余的數據並打印(...more elements)

我正在運行如下命令以打印到文件(帶有 GitBash 的 Windows 10 x64,所以我使用 php.exe 而不是 php):

php.exe artisan command-namespace:command >> result.out

我怎樣才能覆蓋/避免這種情況發生並將完整的dataArray打印到文件,而不管它的大小?

嘗試使用全局日志。 將日志通道添加到您的 config/logging.php 文件中,如下所示:

'dataLogger' => [
    'driver' => 'daily',
    'path' => storage_path('logs/data.log'),
    'level' => 'info',
],

並在您的代碼中使用,例如:

use Log; 
foreach ($dataArr as $dataEle){
    Log::channel('dataLogger')->info($dataEle);
}

(或者你想格式化你的數據。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM