neuron-php / logging
日志记录。
0.6.10
2022-11-29 17:06 UTC
Requires
- ext-curl: *
- ext-json: *
- ext-sockets: *
- neuron-php/patterns: 0.6.*
- neuron-php/util: 0.6.*
- neuron-php/validation: 0.6.*
Requires (Dev)
- phpunit/phpunit: 9.*
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." );