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 - Logging for PHP

Monolog:将不同通道和多个处理程序记录到分组日志文件 + 专用日志文件

PHP Monolog 记录器 RotatingFileHandler 从不旋转文件

Monolog:捕获错误/异常并在响应中输出消息的处理程序(根据 PHP 默认)