PHP:如何使用单声道登录控制台(php:// out)?

我刚刚切换到单声道,并希望将我的消息记录到 PHP控制台而不是文件.对于某些人来说,这似乎是显而易见的,但是我花了一点时间来弄清楚如何做到这一点,而且我在SO上找不到类似的问题/答案.

Monolog’s Github readme上的示例仅显示如何使用文件

<?PHP

use Monolog\Logger;
use Monolog\Handler\StreamHandler;

// create a log channel
$log = new Logger('name');
$log->pushHandler(new StreamHandler('path/to/your.log',Logger::WARNING)); // <<< uses a file

// add records to the log
$log->addWarning('Foo');
$log->addError('Bar');

但是,它不会在消息可以记录到控制台的任何地方.在谷歌搜索后,我登陆了交响乐的帮助页面或者寻求登录浏览器控制台的人的问题.

解决方案很简单.由于该示例显示了StreamHandler,因此可以传入流(而不是文件的路径).认情况下,PHP中回显的所有内容都写入 php://stdout / php://output,所以我们可以简单地将其中一个作为StreamHandler的流使用:
<?PHP

use Monolog\Logger;
use Monolog\Handler\StreamHandler;

// create a log channel
$log = new Logger('name');
$log->pushHandler(new StreamHandler('PHP://stdout',Logger::WARNING)); // <<< uses a stream

// add records to the log
$log->addWarning('Foo');
$log->addError('Bar');

希望这可以节省一些时间:)

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...