PHP:如何使用 monolog 登录到控制台 (php://out)?

标签 php console stdout monolog

我刚刚切换到 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/

相关文章:

php - 保存可见的用户日志

php - 根据 volt、phalcon 中的用户组显示 block

php - WooCommerce 自动将产品图片添加到图库(如果图库为空)

linux - 在 bash 脚本中执行命令,直到输出超过特定值

与 execv 通信()'ed program via pipe doesn' t 工作

python - 异常后标准输出不会刷新

PHP - 如何使用表单桥接表

javascript - Chrome 控制台不返回值

java - 如果Java真的是平台无关的,为什么没有一劳永逸的clearConsoleOutput库方法呢?

java - 如何使用 com.strobel.decompiler.PlainTextOutput 在控制台中打印