bramus/monolog-colored-line-formatter
Composer 安装命令:
composer require bramus/monolog-colored-line-formatter
包简介
Colored Line Formatter for Monolog
README 文档
README
A Formatter for Monolog with color support Built by Bramus! - https://www.bram.us/
About
bramus/monolog-colored-line-formatter is a formatter for use with Monolog. It augments the Monolog LineFormatter by adding color support. To achieve this bramus/monolog-colored-line-formatter uses ANSI Escape Sequences – provided by bramus/ansi-php – which makes it perfect for usage on text based terminals (viz. the shell).
bramus/monolog-colored-line-formatter ships with a default color scheme, yet it can be adjusted to fit your own needs.
Prerequisites/Requirements
- PHP 8.1 or greater
- Monolog 3.0 or greater
Looking for a version compatible with Monolog 1.x? Check out the monolog-1.x branch then. The version of monolog-colored-line-formatter that is compatible with Monolog 1.x, is monolog-colored-line-formatter version ~2.0
Looking for a version compatible with Monolog 2.x? Check out the monolog-2.x branch then. The version of monolog-colored-line-formatter that is compatible with Monolog 1.x, is monolog-colored-line-formatter version ~3.0.0
Installation
Installation is possible using Composer.
Install monolog-colored-line-formatter, compatible with Monolog 3.x:
composer require bramus/monolog-colored-line-formatter ~3.1
Install monolog-colored-line-formatter, compatible with Monolog 2.x:
composer require bramus/monolog-colored-line-formatter ~3.0.0
Install monolog-colored-line-formatter, compatible with Monolog 1.x:
composer require bramus/monolog-colored-line-formatter ~2.0
Usage
Create an instance of \Bramus\Monolog\Formatter\ColoredLineFormatter and set it as the formatter for the \Monolog\Handler\StreamHandler that you use with your \Monolog\Logger instance.
use \Monolog\Logger; use \Monolog\Handler\StreamHandler; use \Bramus\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.');
Color Schemes
Available Color Schemes
Color Scheme: DefaultScheme
Color Scheme: TrafficLight
Activating a Color Scheme
Color Schemes are defined as classes. If you do not provide any color scheme the default one will be used.
To activate a color scheme pass it as the first argument of the ColoredLineFormatter Constructor. All successive arguments are the ones as required by the \Monolog\Formatter\LineFormatter class.
use \Monolog\Logger; use \Monolog\Handler\StreamHandler; use \Bramus\Monolog\Formatter\ColoredLineFormatter; use \Bramus\Monolog\Formatter\ColorSchemes\TrafficLight; $log = new Logger('DEMO'); $handler = new StreamHandler('php://stdout', Logger::WARNING); $handler->setFormatter(new ColoredLineFormatter(new TrafficLight())); $log->pushHandler($handler);
Alternatively it's also possible to activate it using the setColorScheme() method of a ColoredLineFormatter instance.
Creating your own Custom Color Scheme
To define your own color scheme make a class that implements the \Bramus\Monolog\Formatter\ColorSchemes\ColorSchemeInterface interface. To make things more easy a trait ColorSchemeTrait is defined.
namespace Bramus\Monolog\Formatter\ColorSchemes; use Monolog\Logger; use Monolog\Level; 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( Level::Debug->value => $this->ansi->color([SGR::COLOR_FG_WHITE])->get(), Level::Info->value => $this->ansi->color([SGR::COLOR_FG_GREEN])->get(), Level::Notice->value => $this->ansi->color([SGR::COLOR_FG_CYAN])->get(), Level::Warning->value => $this->ansi->color([SGR::COLOR_FG_YELLOW])->get(), Level::Error->value => $this->ansi->color([SGR::COLOR_FG_RED])->get(), Level::Critical->value => $this->ansi->color([SGR::COLOR_FG_RED])->underline()->get(), Level::Alert->value => $this->ansi->color([SGR::COLOR_FG_WHITE, SGR::COLOR_BG_RED_BRIGHT])->get(), Level::Emergency->value => $this->ansi->color([SGR::COLOR_BG_RED_BRIGHT])->blink()->color([SGR::COLOR_FG_WHITE])->get(), )); } }
Please refer to the bramus/ansi-php documentation to define your own styles and colors.
Unit Testing
bramus/monolog-colored-line-formatter ships with unit tests using PHPUnit.
-
If PHPUnit is installed globally run
phpunitto run the tests. -
If PHPUnit is not installed globally, install it locally through composer by running
composer install --dev. Run the tests themselves by callingvendor/bin/phpunit.
Unit tests are also automatically run on GitHub Actions
License
bramus/monolog-colored-line-formatter is released under the MIT public license. See the enclosed LICENSE.txt for details.
bramus/monolog-colored-line-formatter 适用场景与选型建议
bramus/monolog-colored-line-formatter 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 7.13M 次下载、GitHub Stars 达 141, 最近一次更新时间为 2014 年 12 月 17 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 bramus/monolog-colored-line-formatter 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 bramus/monolog-colored-line-formatter 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 7.13M
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 142
- 点击次数: 29
- 依赖项目数: 60
- 推荐数: 3
其他信息
- 授权协议: MIT
- 更新时间: 2014-12-17

