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 类包含具有建议通道名的常量,包括
APPAUDITCLIDATABASECONTROLLERDEVERRORHEALTHHTTPJOBMODELNOTIFICATIONOPSPRIVILEGESPRODQAQUEUEREQUESTRESPONSEROUTERSCHEDULESECURITYSTAGINGSTORAGE
示例
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)