bayfrontmedia / multi-logger
一个易于使用的库,用于从单个类中管理多个 Monolog 通道。
Requires
- php: ^8.0
- monolog/monolog: ^3.4
This package is auto-updated.
Last update: 2024-09-16 16:10:05 UTC
README
一个易于使用的库,用于从单个类中管理多个 Monolog 通道。
许可证
本项目是开源的,可在 MIT 许可证 下使用。
作者
需求
- PHP
^8.0
安装
composer require bayfrontmedia/multi-logger
使用
注意:Multi-Logger 抛出的所有异常都扩展自 Bayfront\MultiLogger\Exceptions\MultiLoggerException
,因此您可以选择以尽可能窄或宽的方式捕获异常。
Multi-Logger 的存在是为了从单个类中管理多个 Monolog 通道。
在某些情况下,您可能仍然需要直接与 Monolog\Logger
对象交互,而 Multi-Logger 允许您通过 getChannel 方法来实现这一点。
必须将 Logger
实例传递给构造函数,它将自动设置为默认和当前通道。
为了帮助在引用日志通道时保持一致性,Bayfront\MultiLogger\ChannelName
类包含具有建议通道名的常量,包括
APP
AUDIT
CLI
DATABASE
CONTROLLER
DEV
ERROR
HEALTH
HTTP
JOB
MODEL
NOTIFICATION
OPS
PRIVILEGES
PROD
QA
QUEUE
REQUEST
RESPONSE
ROUTER
SCHEDULE
SECURITY
STAGING
STORAGE
示例
use Bayfront\MultiLogger\ChannelName; use Bayfront\MultiLogger\Log; use Monolog\Logger; use Monolog\Handler\FirePHPHandler; $app_channel = new Logger(ChannelName::APP); $app_channel->pushHandler(new FirePHPHandler()); $log = new Log($app_channel);
公共方法
记录事件
getChannels
描述
返回通道名数组。
参数
- (None)
返回
- (array)
getDefaultChannel
描述
返回默认通道名。
参数
- (None)
返回
- (string)
getCurrentChannel
描述
返回当前通道名。
参数
- (None)
返回
- (string)
addChannel
描述
添加具有相同名称的新通道的日志记录器实例。
如果已存在具有相同名称的现有实例,则将其覆盖。
参数
$logger
(object):Monolog\Logger
对象
返回
- (self)
示例
use Bayfront\MultiLogger\ChannelName; use Monolog\Logger; use Monolog\Handler\FirePHPHandler; $audit_channel = new Logger(ChannelName::AUDIT); $audit_channel->pushHandler(new FirePHPHandler()); $log->addChannel($audit_channel);
isChannel
描述
通道名是否存在?
参数
$channel
(string)
返回
- (bool)
示例
if ($log->isChannel(ChannelName::APP)) {
// Do something
}
getChannel
描述
返回给定通道的 Logger
实例。
参数
$channel = ''
(string): 要返回的通道名。如果为空字符串,则返回当前通道。
返回
- (object):
Monolog\Logger
对象
抛出
Bayfront\MultiLogger\Exceptions\ChannelNotFoundException
示例
try {
$app_channel = $log->getChannel(ChannelName::APP);
} catch (ChannelNotFoundException $e) {
die($e->getMessage());
}
channel
描述
设置用于下一个记录事件的通道名。
默认情况下,所有记录的事件都将记录到构造函数中使用的默认通道。
参数
$channel
(string)
返回
- (self)
抛出
Bayfront\MultiLogger\Exceptions\ChannelNotFoundException
示例
try {
$log->channel(ChannelName::AUDIT)->info('This is an informational log message.');
} catch (ChannelNotFoundException $e) {
die($e->getMessage());
}
emergency
描述
系统无法使用。
参数
$message
(string)$context
(array)
返回
- (void)
alert
描述
必须立即采取措施。
示例:整个网站关闭,数据库不可用等。这应该触发短信警报并唤醒您。
参数
$message
(string)$context
(array)
返回
- (void)
critical
描述
严重条件。
示例:应用程序组件不可用,出现意外异常。
参数
$message
(string)$context
(array)
返回
- (void)
error
描述
不需要立即采取行动的运行时错误,但通常应记录并监控。
参数
$message
(string)$context
(array)
返回
- (void)
warning
描述
非错误性的异常情况。
示例:使用已弃用的API,API使用不当,可能不是错误的行为。
参数
$message
(string)$context
(array)
返回
- (void)
notice
描述
正常但重要的事件。
参数
$message
(string)$context
(array)
返回
- (void)
info
描述
有趣的事件。
示例:用户登录,SQL日志。
参数
$message
(string)$context
(array)
返回
- (void)
debug
描述
详细的调试信息。
参数
$message
(string)$context
(array)
返回
- (void)
log
描述
任意级别的日志。
参数
$level
(混合)$message
(string)$context
(array)
返回
- (void)