如何解决打印/保存完整的Laravel Artisan命令输出调试行中的大数组到文件
我正在Laravel 6.x项目中工作,我在Artisan命令中添加了调试行,以将从该行生成的大型数组转换为文本文件作为输出。
看起来几乎像上述命令的handle
方法中的以下代码:
....
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);
}
(或者您想格式化数据。)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。