eliashaeussler / transient-logger
符合PSR-3规范的日志记录器,用于在内存中存储日志,特别适用于测试
1.0.0
2023-11-23 09:41 UTC
Requires
- php: ~8.1.0 || ~8.2.0 || ~8.3.0
- psr/log: ^1.0 || ^2.0 || ^3.0
Requires (Dev)
Provides
- psr/log-implementation: 1.0 || 2.0 || 3.0
This package is auto-updated.
Last update: 2024-09-22 04:07:45 UTC
README
瞬态PSR-3日志记录器
这个库提供了一个小型PSR-3兼容的日志记录器,用于将日志记录存储在内存中。每个日志都被转换为一个日志记录并附加到当前日志记录器实例。只要日志记录器对象在内存中可用,日志就会可用。这对于测试应用程序和库特别有用。
🔥 安装
composer require --dev eliashaeussler/transient-logger
⚡ 使用方法
创建日志记录器
该库提供了一个TransientLogger
类,该类实现了PSR的LoggerInterface
。您可以使用它就像使用任何其他PSR-3兼容的日志记录器一样
use EliasHaeussler\TransientLogger; $logger = new TransientLogger\TransientLogger();
记录日志消息
对于每条记录的日志消息,都会创建一个新的Log\LogRecord
并将其附加到日志记录器实例。适当的日志级别由一个表示PSR的LogLevel
常量的Log\LogLevel
枚举表示。
// Log using generic log() method $logger->log( TransientLogger\Log\LogLevel::Alert, 'Houston, we have a problem!', ['error' => 'rocket down'], ); // Log using specific methods $logger->alert('Houston, we have a problem!', ['error' => 'rocket down']);
访问日志记录
您可以通过几种方式访问所有日志记录
// Get all log records $logs = $logger->getAll(); // Get by specific log level $errors = $logger->getByLogLevel(TransientLogger\Log\LogLevel::Error); // Iterate over log records foreach ($logger as $logRecord) { $level = $logRecord->level; // instanceof \EliasHaeussler\TransientLogger\Log\LogLevel $message = $logRecord->message; // string or instanceof Stringable $context = $logRecord->context; // array<string, mixed> }
刷新日志
如果需要,您始终可以刷新附加到日志记录器的日志
$logger->flushLog();
🧑💻 贡献
请参阅CONTRIBUTING.md
。
⭐ 许可证
该项目受GNU通用公共许可证3.0(或更高版本)许可。