我刚刚切换到 monolog,想将我的消息记录到 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');
但它没有说明如何将消息记录到控制台。在 Google 上搜索后,我找到了 Symfony 的帮助页面,或者是人们正在寻找登录浏览器控制台的方法。
最佳答案
解决方案相当简单。由于示例显示了 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->warning('Foo');
$log->error('Bar');
希望这可以节省一些时间:)
关于PHP:如何使用 monolog 登录到控制台 (php://out)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25787258/