Print/Save 完成 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)
。
而我是 运行 如下命令打印到文件(Windows 10 x64 与 GitBash,所以我使用 php.exe 而不是 php):
php.exe artisan command-namespace:command >> result.out
我怎样才能 override/avoid 不考虑它的大小并将完整的 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);
}
(或者您希望格式化您的数据。)
我在 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
我怎样才能 override/avoid 不考虑它的大小并将完整的 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);
}
(或者您希望格式化您的数据。)