neuron-php/logging

日志记录。

0.6.10 2022-11-29 17:06 UTC

This package is auto-updated.

Last update: 2024-08-29 05:43:15 UTC


README

安装

https://getcomposer.org.cn/安装php composer

安装neuron日志组件

composer require neuron-php/logging

日志记录

日志记录器使用特定的格式将日志条目写入目标位置。

目标位置

  • 回声
  • 电子邮件
  • 文件
  • Slack
  • 套接字
  • 标准错误
  • 标准输出
  • Webhook

格式

  • CSV
  • HTML
  • HTML电子邮件
  • JSON
  • 纯文本
  • 原始

多路复用器

LogMux实现ILogger接口,但可以同时包含和写入多个日志。每个日志记录器可以有不同的运行级别,因此只能根据日志级别写入某些日志。

日志记录器单例

日志记录器单例是一个作为单例/横切关注点存在的LogMux包装器,因此可以在代码库的任何地方访问它。

默认日志是使用纯文本格式的Echoer。

示例

日志记录器单例

开始最快的方法是使用单例外观

// Optionally set the runlevel..
Log::setRunLevel( 'debug' );

Log::debug( "Log message." );

Slack

配置Slack

$Log = Log::getInstance();

$Slack = new Slack(
    new PlainText( true )
);

$Slack->open(
    [
        'endpoint' => env( 'LOG_SLACK_WEBHOOK_URL' ),
        'params' => [
            'channel'  => env( 'LOG_SLACK_CHANNEL' ),
            'username' => 'Log'
        ]
    ]
);

$SlackLogger = new Logger( $Slack );
$SlackLogger->setRunLevel( 'error' );
$Log->Logger->addLog( $SlackLogger );

在此示例中,任何级别为ERROR或更高的日志都将写入Slack通道。

上下文

Log::setContext( 'UserId', $UserId );
Log::setContext( 'SessionId', $SessionId );

Log::info( "New login." );

输出

[2022-06-03 12:00:00][Info] [UserId=15, SessionId=1234] 新登录

$Log = Log::getInstance();

$Slack = new Slack(
    new PlainText( true )
);

$Slack->open(
    [
        'endpoint' => env( 'LOG_SLACK_WEBHOOK_URL' ),
        'params' => [
            'channel'  => env( 'LOG_SLACK_CHANNEL' ),
            'username' => 'Log'
        ]
    ]
);

$SlackLogger = new Logger( $Slack );
$SlackLogger->setRunLevel( 'info' );

Log::addToMux( 'RealTime', $SlackLogger );

Log::mux( 'RealTime' )->info( "Slack notification." );