问题描述
我正在Laravel 6.x项目中工作,我在Artisan命令中添加了调试行,以将从该行生成的大型数组转换为文本文件作为输出。
....
if(!$dataArray->isEmpty())
{
foreach ($dataArr as $dataEle)
{
$dataArrToPrnt[] = $dataEle->toArray();
....
}
}
die(var_dump($dataArrToPrnt));
....
但是问题是dataArray
很大,因此在输入很少的内容之后,命令输出将跳过其余数据并打印(...more elements)
。
我正在运行以下命令以打印到文件(Windows 10 x64使用GitBash,因此我使用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);
}
(或者您想格式化数据。)