regho / monolog-colored-line-formatter
Monolog的彩色行格式化工具
Requires
- php: ^8.1
- bramus/ansi-php: ^3.0.3
Requires (Dev)
- monolog/monolog: ~3.0
- phpunit/phpunit: ~7.0|^9.4
This package is not auto-updated.
Last update: 2024-09-22 01:46:34 UTC
README
Regho开发的具有颜色支持的Monolog格式化工具 - https://www.bram.us/
关于
Regho/monolog-colored-line-formatter
是用于 Monolog 的格式化工具。它通过添加颜色支持增强了 Monolog LineFormatter。为了实现这一点,Regho/monolog-colored-line-formatter
使用 ANSI 转义序列 - 由 Regho/ansi-php
提供 - 使得它在基于文本的终端(如 shell)上使用非常完美。
Regho/monolog-colored-line-formatter
随附一个默认的颜色方案,但也可以根据您的需求进行调整。
先决条件/需求
- PHP 7.2 或更高版本
- Monolog 2.0 或更高版本
寻找与 Monolog 1.x 兼容的版本?请查看 monolog-1.x
分支。与 Monolog 1.x 兼容的 monolog-colored-line-formatter
版本是 monolog-colored-line-formatter
版本 ~2.0
安装
可以使用 Composer 进行安装。
安装与 Monolog 2.x 兼容的 monolog-colored-line-formatter
composer require Regho/monolog-colored-line-formatter ~3.0
安装与 Monolog 1.x 兼容的 monolog-colored-line-formatter
composer require Regho/monolog-colored-line-formatter ~2.0
使用方法
创建 \Regho\Monolog\Formatter\ColoredLineFormatter
的实例,并将其设置为与您的 \Monolog\Logger
实例一起使用的 \Monolog\Handler\StreamHandler
的格式化工具。
use \Monolog\Logger; use \Monolog\Handler\StreamHandler; use \Regho\Monolog\Formatter\ColoredLineFormatter; $log = new Logger('DEMO'); $handler = new StreamHandler('php://stdout', Logger::WARNING); $handler->setFormatter(new ColoredLineFormatter()); $log->pushHandler($handler); $log->addError('Lorem ipsum dolor sit amet, consectetur adipiscing elit.');
颜色方案
可用的颜色方案
颜色方案:默认方案
颜色方案:交通灯
激活颜色方案
颜色方案定义为类。如果您不提供任何颜色方案,则默认方案将被使用。
要激活颜色方案,请将其作为 ColoredLineFormatter
构造函数的第一个参数传递。所有后续参数都是 \Monolog\Formatter\LineFormatter
类所必需的。
use \Monolog\Logger; use \Monolog\Handler\StreamHandler; use \Regho\Monolog\Formatter\ColoredLineFormatter; use \Regho\Monolog\Formatter\ColorSchemes\TrafficLight; $log = new Logger('DEMO'); $handler = new StreamHandler('php://stdout', Logger::WARNING); $handler->setFormatter(new ColoredLineFormatter(new TrafficLight())); $log->pushHandler($handler);
或者,也可以通过 ColoredLineFormatter
实例的 setColorScheme()
方法来激活它。
创建自定义颜色方案
要定义自己的颜色方案,请创建一个实现 \Regho\Monolog\Formatter\ColorSchemes\ColorSchemeInterface
接口的面板。为了使事情更简单,定义了一个 trait ColorSchemeTrait
。
namespace Regho\Monolog\Formatter\ColorSchemes; use Monolog\Logger; use Bramus\Ansi\Ansi; use Bramus\Ansi\ControlSequences\EscapeSequences\Enums\SGR; class TrafficLight implements ColorSchemeInterface { /** * Use the ColorSchemeTrait and alias its constructor */ use ColorSchemeTrait { ColorSchemeTrait::__construct as private __constructTrait; } /** * [__construct description] */ public function __construct() { // Call Trait Constructor, so that we have $this->ansi available $this->__constructTrait(); // Our Color Scheme $this->setColorizeArray(array( Logger::DEBUG => $this->ansi->color(SGR::COLOR_FG_WHITE)->get(), Logger::INFO => $this->ansi->color(SGR::COLOR_FG_GREEN)->get(), Logger::NOTICE => $this->ansi->color(SGR::COLOR_FG_CYAN)->get(), Logger::WARNING => $this->ansi->color(SGR::COLOR_FG_YELLOW)->get(), Logger::ERROR => $this->ansi->color(SGR::COLOR_FG_RED)->get(), Logger::CRITICAL => $this->ansi->color(SGR::COLOR_FG_RED)->underline()->get(), Logger::ALERT => $this->ansi->color(array(SGR::COLOR_FG_WHITE, SGR::COLOR_BG_RED_BRIGHT))->get(), Logger::EMERGENCY => $this->ansi->color(SGR::COLOR_BG_RED_BRIGHT)->blink()->color(SGR::COLOR_FG_WHITE)->get(), )); } }
请参阅 Regho/ansi-php
的文档 以定义自己的样式和颜色。
单元测试
Regho/monolog-colored-line-formatter
随附使用 PHPUnit 的单元测试。
-
如果已全局安装 PHPUnit,请运行
phpunit
以运行测试。 -
如果没有全局安装 PHPUnit,请通过 composer 在本地安装它,运行
composer install --dev
。通过调用vendor/bin/phpunit
运行测试。
单元测试也会自动在 GitHub Actions 上运行
许可证
Regho/monolog-colored-line-formatter
在 MIT 公共许可证下发布。有关详细信息,请参阅附带的 LICENSE.txt
文件。