Monolog,如何将 PHP 数组记录到控制台?
Posted
技术标签:
【中文标题】Monolog,如何将 PHP 数组记录到控制台?【英文标题】:Monolog, how to log PHP array into console? 【发布时间】:2014-08-18 11:12:06 【问题描述】:我正在使用浏览器处理程序将消息记录到 JS 控制台
require_once 'vendor/autoload.php';
use Monolog\Logger;
use Monolog\Handler\BrowserConsoleHandler;
$log = new Logger('name');
$log->pushHandler(new BrowserConsoleHandler);
$data = array(1,2,3,4);
// add records to the log
$log->addWarning('Foo');
我想知道,是否可以将 $data
之类的数组记录到重新组合数组内容的控制台中?
【问题讨论】:
【参考方案1】:试试这个:
$log->addWarning('Foo: ' . var_export($data, true));
【讨论】:
我觉得我应该补充一点,从这个答案开始 5 年后,现在正确的方法是使用$log->addWarning('Foo', $data);
,按照下面 Colin Smillie 的回答。 ***.com/a/39025294/2286736【参考方案2】:
另外,你可以试试这个:
$log->addWarning('Foo: ' . print_r($data, true));
或者
$log->addWarning('Foo:' , $data);
【讨论】:
$log->addWarning('Foo: ' . print_r($data, true));不起作用,输出为“1” 表示你的$data是1。 答案的第二部分是正确的,更好的方法。【参考方案3】:数组的最佳方法(来自 Felix 答案的第二部分)是:
$log->addWarning('Foo:' , $data);
AddWarning 将接受一个数组作为第二个参数并在浏览器中正确格式化它。
使用 var_export 将转换为字符串,并且无法在浏览器控制台中正确格式化数组。
【讨论】:
以上是关于Monolog,如何将 PHP 数组记录到控制台?的主要内容,如果未能解决你的问题,请参考以下文章
Monolog stdout/stderr 记录到 Docker 中的当前终端进程
使用 Monolog 在 Symfony2 中记录 PHP 致命错误
Monolog:将不同通道和多个处理程序记录到分组日志文件 + 专用日志文件