gfaugere/monolog-colored-line

一个简单的格式化器,可以为您的日志添加级别相关的颜色。

1.0.0 2020-09-02 22:00 UTC

This package is auto-updated.

Last update: 2024-09-19 02:00:23 UTC


README

一个简单的格式化器,可以为您的日志添加级别相关的颜色。

安装

通过composer安装

$ composer require gfaugere/monolog-colored-line

基本用法

使用方式与Monolog\LineFormatter相同

<?php

use Monolog\Logger;
use Monolog\Handler\StreamHandler;
use gfaugere\Monolog\Formatter\ColoredLineFormatter;

$formatter = new ColoredLineFormatter();

// Create a handler
$stream = new StreamHandler(__DIR__.'/my_app.log', Logger::DEBUG);
// Don't forget to attach your new formatter
$stream->setFormatter($formatter);
// Create a log channel
$log = new Logger('name');
$log->pushHandler($stream);

// Add records as usual
$log->warning('Foo');
$log->error('Bar');

默认颜色

您的日志将看起来像这样
Logs of ascending levels with different colors wrapping the level, spelling "Hello! This is a small and colorful formatter"

自定义格式

默认情况下,%level_name%将被颜色包围。您可以使用格式中的新变量%color_start%%color_end%来选择要着色的内容
Logs of ascending levels with different colors wrapping the date, channel name, and log level ; spelling "You can chose where to put the colors."
此示例使用"%color_start%[%datetime%] %channel%.%level_name%:%color_end% %message% %context% %extra%\n"作为格式。

如果您想使用多个%level_name%但只想着色第一个,可以将$colorMode设置为ColoredLineFormatter::MODE_COLOR_LEVEL_FIRST,以便仅格式化第一个出现的内容。

自定义方案

您可以选择自己的颜色方案

<?php

use Monolog\Logger;
use Monolog\Handler\StreamHandler;
use gfaugere\Monolog\Formatter\ColoredLineFormatter;

$format = "[%datetime%] %color_start%%channel%.%level_name%: %message%%color_end% %context% %extra%\n";
$scheme = [
    Logger::DEBUG     => "\033[38;5;206m",
    Logger::INFO      => "\033[38;5;196m",
    Logger::NOTICE    => "\033[38;5;202m",
    Logger::WARNING   => "\033[38;5;226m",
    Logger::ERROR     => "\033[38;5;34m",
    Logger::CRITICAL  => "\033[38;5;81m",
    Logger::ALERT     => "\033[38;5;53m",
    Logger::EMERGENCY => "\033[38;5;129m"
];

$formatter = new ColoredLineFormatter($format, null, false, false, $scheme);

// Create a handler
$stream = new StreamHandler(__DIR__.'/my_app.log', Logger::DEBUG);
// Don't forget to attach your new formatter
$stream->setFormatter($formatter);
// Create a log channel
$log = new Logger('name');
$log->pushHandler($stream);

// Add records as usual
$log->warning('Foo');
$log->error('Bar');

此格式化器不会对序列进行任何检查或验证。您可以使用终端支持的任何内容!
Logs of ascending levels with different colors wrapping the channel name, level and message ; spelling "Supports whatever your terminal supports with ANSI code"

关于

要求

支持Monolog ^2.0,适用于PHP 7.2或更高版本