webiik / log
Log 提供了高级日志记录的简单解决方案。
Requires
- php: >=7.2
This package is auto-updated.
Last update: 2024-09-29 05:08:47 UTC
README
日志
Log 提供了高级日志记录的简单解决方案。
安装
composer require webiik/log
示例
$log = new \Webiik\Log\Log(); $log->addLogger(function () { return new \Webiik\Log\Logger\FileLogger(); }); $log->info('Hello {name}!', ['name' => 'Dolly!']); $log->write();
日志记录器
addLogger
addLogger(callable $factory): Logger
addLogger() 创建新的 Logger 并将其注入到其中。将创建的 Logger 添加到 Log 并返回它。要处理日志,您必须向 Log 添加一些 Logger。Log 包含 3 个可选的日志记录器:ErrorLogger、FileLogger 和 MailLogger。
$log->addLogger(function () { return new \Webiik\Log\Logger\ErrorLogger(); });
编写自定义日志记录器
您可以编写自己的自定义日志记录器。您需要做的只是实现 Webiik\Log\Logger\LoggerInterface。
// CustomLogger.php declare(strict_types=1); use Webiik\Log\Message; class CustomLogger implements Webiik\Log\Logger\LoggerInterface { public function write(Message $message): void { // Process Message... } }
消息
add
emergency(string $message, array $context = []): Message alert(string $message, array $context = []): Message critical(string $message, array $context = []): Message error(string $message, array $context = []): Message warning(string $message, array $context = []): Message notice(string $message, array $context = []): Message info(string $message, array $context = []): Message debug(string $message, array $context = []): Message log(string $level, string $message, array $context = []): Message
将 Message 添加到 Log。添加的消息在调用 write() 方法之前不会写入。消息可以包含 {占位符},这些占位符将被来自 context 数组的值替换。它返回 Message。
$log->info('Hello {name}!', ['name' => 'Dolly!']);
write
write(): void
write() 移除所有添加的消息并使用关联的日志记录器将它们写入。
$log->write();
setData
Message->setData(array $data): Message
setData() 向您的消息添加额外数据。
$log->info('Hello Dolly!')->setData(['greeter' => 'Molly']);
组
setGroup
Logger->setGroup(string $group): Logger Message->setGroup(string $group): Message
setGroup() 将 Logger 添加到正组。每个 Logger 和日志消息都可以属于一个或多个正组。当 Logger 属于某些组时,它只记录属于同一组的消息。
// This logger logs only log messages belonging to 'error' group $log->addLogger(function () { return new \Webiik\Log\Logger\ErrorLogger(); })->setGroup('error'); // Add some log messages $log->info('Some info.'); $log->warning('Some error.')->setGroup('error');
setNegativeGroup
Logger->setNegativeGroup(string $group): Logger Message->setGroup(string $group): Message
setNegativeGroup() 将 Logger 添加到负组。每个 Logger 都可以属于一个或多个负组。当 Logger 属于某些负组时,它不会记录属于同一组的消息。
// This logger doesn't log messages belonging to 'error' group $log->addLogger(function () { return new \Webiik\Log\Logger\FileLogger(); })->setNegativeGroup('error'); // Add some log messages $log->info('Some info.'); $log->warning('Some error.')->setGroup('error');
级别
setLevel
Logger->setLevel(string $level): Logger
setLevel() 设置 Logger 以仅写入具有特定 PSR-3 日志级别的消息。
// This logger logs messages from all groups but only with log level 'info' $log->addLogger(function () { return new \Webiik\Log\Logger\FileLogger(); })->setLevel('info');
静默模式
setSilent
setSilent(bool $silent): void
setSilent() 配置 Log 以跳过失败的 Logger。在静默模式下,失败的 Logger 不会停止代码执行,而是将这些事件用其他 Logger 记录。默认值为 FALSE。
$log = setSilent(true);