All Projects → bramus → Monolog Colored Line Formatter

bramus / Monolog Colored Line Formatter

Licence: mit
Colored/ANSI Line Formatter for Monolog

Projects that are alternatives of or similar to Monolog Colored Line Formatter

terminal-style
🎨 Return your terminal message in style! Change the text style, text color and text background color from the terminal, console or shell interface with ANSI color codes. Support for Laravel and Composer.
Stars: ✭ 16 (-85.19%)
Mutual labels:  color, ansi
Gommon
Common packages for Go
Stars: ✭ 389 (+260.19%)
Mutual labels:  logging, color
Chalk
🖍 Terminal string styling done right
Stars: ✭ 17,566 (+16164.81%)
Mutual labels:  ansi, color
paper-terminal
Print Markdown to a paper in your terminal
Stars: ✭ 33 (-69.44%)
Mutual labels:  color, ansi
Term
Unix terminal drain and formatter for slog-rs
Stars: ✭ 17 (-84.26%)
Mutual labels:  logging, color
concolor
Colouring template strings using tags with annotations 🎨
Stars: ✭ 35 (-67.59%)
Mutual labels:  color, ansi
Mordant
Full-featured text styling for Kotlin command-line applications
Stars: ✭ 382 (+253.7%)
Mutual labels:  ansi, color
go-color
A lightweight, simple and cross-platform package to colorize text in terminals
Stars: ✭ 65 (-39.81%)
Mutual labels:  color, ansi
Pixterm
Draw images in your ANSI terminal with true color
Stars: ✭ 782 (+624.07%)
Mutual labels:  ansi, color
Imgcat
It's like cat, but for images.
Stars: ✭ 577 (+434.26%)
Mutual labels:  ansi, color
log-utils
Basic logging utils: colors, symbols and timestamp.
Stars: ✭ 24 (-77.78%)
Mutual labels:  color, ansi
Rang
A Minimal, Header only Modern c++ library for terminal goodies 💄✨
Stars: ✭ 1,080 (+900%)
Mutual labels:  ansi, color
yachalk
🖍️ Terminal string styling done right
Stars: ✭ 131 (+21.3%)
Mutual labels:  color, ansi
ansi-to-svg
😹 convert ANSI Escaped CLI strings to SVGs
Stars: ✭ 18 (-83.33%)
Mutual labels:  color, ansi
leeks.js
Simple ANSI styling for your terminal
Stars: ✭ 12 (-88.89%)
Mutual labels:  color, ansi
Hues
Colored terminal text made easy for Python and happiness.
Stars: ✭ 345 (+219.44%)
Mutual labels:  ansi, color
Ololog
A better console.log for the log-driven debugging junkies
Stars: ✭ 141 (+30.56%)
Mutual labels:  logging, ansi
strip-ansi-stream
Strip ANSI escape codes
Stars: ✭ 32 (-70.37%)
Mutual labels:  color, ansi
Color
Color package for Go (golang)
Stars: ✭ 4,904 (+4440.74%)
Mutual labels:  ansi, color
Fliplog
fluent logging with verbose insight, colors, tables, emoji, filtering, spinners, progress bars, timestamps, capturing, stack traces, tracking, presets, & more...
Stars: ✭ 41 (-62.04%)
Mutual labels:  logging, color

Monolog Colored Line Formatter

Build Status Source Supported PHP Versions Version Downloads License

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 7.2 or greater
  • Monolog 2.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

Installation

Installation is possible using Composer.

Install monolog-colored-line-formatter, compatible with Monolog 2.x:

composer require bramus/monolog-colored-line-formatter ~3.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

Monolog Colored Line Formatter

Color Scheme: TrafficLight

Monolog Colored Line Formatter

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 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(),
        ));
    }
}

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 phpunit to run the tests.

  • If PHPUnit is not installed globally, install it locally through composer by running composer install --dev. Run the tests themselves by calling vendor/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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].