shureban / laravel-logplex

Laravel 美观日志消息

安装次数: 7

依赖者: 0

建议者: 0

安全: 0

星标: 3

关注者: 1

分支: 0

开放问题: 0

类型:laravel-package

1.0.11 2024-06-20 05:19 UTC

This package is auto-updated.

Last update: 2024-09-20 08:17:31 UTC


README

安装

使用以下命令通过composer安装此包:

composer require shureban/laravel-logplex

将以下类添加到config/app.php中的providers数组中

Shureban\LaravelLogplex\LogplexServiceProvider::class,

您必须发布配置文件。

php artisan vendor:publish --provider="Shureban\LaravelLogplex\LogplexServiceProvider"

如何使用

1. 在config/logging.php中的channels部分添加新行

'logplex' => [
    'driver' => 'custom',
    'via'    => \Shureban\LaravelLogplex\LogplexLogger::class,
    'level'  => env('LOGPLEX_LEVEL', \Monolog\Level::Error),
]

2. 编辑您的.env文件

LOG_STACK_CHANNELS=single,logplex

或向stack通道添加额外的日志通道。例如

'stack' => [
    'driver'   => 'stack',
    'channels' => ['single','logplex'],
],

结果

Base screenshot

自定义

例如,您需要更改UserBlock。您想添加与用户相关的组织信息。

1. 创建自己的MessageBuilder版本。重要的是要实现MessageBuilderInterface

<?php

namespace App\Logging\Logplex;

use Shureban\LaravelLogplex\Builder\MessageBuilderInterface;
use Shureban\LaravelLogplex\Channels\Slack\Blocks\FileBlock;
use Shureban\LaravelLogplex\Channels\Slack\Blocks\HeaderBlock;
use Shureban\LaravelLogplex\Channels\Slack\Blocks\RequestBlock;
use Shureban\LaravelLogplex\Channels\Slack\Blocks\TraceBlock;
use Shureban\LaravelLogplex\Channels\Slack\Elements\DividerSection;
use Shureban\LaravelLogplex\Channels\Slack\Message;
use Shureban\LaravelLogplex\LogRecord;

class MessageBuilder implements MessageBuilderInterface
{
    public function buildSlackMessage(LogRecord $logRecord, string $username, string $emoji): Message
    {
        $message = new Message($username, $emoji);

        // Other blocks
        $message->addBlock(new UserBlock($logRecord));
        // Other blocks

        return $message;
    }
}

2. 创建您的UserBlock实现

<?php

namespace App\Logging\Logplex;

use Shureban\LaravelLogplex\Channels\Slack\Block;
use Shureban\LaravelLogplex\Channels\Slack\Elements\FieldsSection;
use Shureban\LaravelLogplex\Channels\Slack\Elements\HeaderSection;
use Shureban\LaravelLogplex\LogRecord;

class UserBlock implements Block
{
    private LogRecord $logRecord;

    public function __construct(LogRecord $logRecord)
    {
        $this->logRecord = $logRecord;
    }

    public function toArray(): array
    {
        $user = $this->logRecord->getUser();

        if (is_null($user)) {
            return [];
        }

        return [
            (new HeaderSection('User info :information_desk_person:'))->toArray(),
            (new FieldsSection([
                sprintf("*Id:*\n%s", $user->getAuthIdentifier()),
                sprintf("*Email:*\n%s", $user->getEmailForVerification()),
                sprintf("*Org. ID:*\n%s", $user->organization->id),
                sprintf("*Org. Name:*\n%s", $user->organization->name),
            ]))->toArray(),
        ];
    }
}

结果

Custom screenshot