eliashaeussler/transient-logger

符合PSR-3规范的日志记录器,用于在内存中存储日志,特别适用于测试

1.0.0 2023-11-23 09:41 UTC

This package is auto-updated.

Last update: 2024-09-22 04:07:45 UTC


README

瞬态PSR-3日志记录器

Coverage Maintainability CGL Tests Supported PHP Versions

这个库提供了一个小型PSR-3兼容的日志记录器,用于将日志记录存储在内存中。每个日志都被转换为一个日志记录并附加到当前日志记录器实例。只要日志记录器对象在内存中可用,日志就会可用。这对于测试应用程序和库特别有用。

🔥 安装

Packagist Packagist Downloads

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(或更高版本)许可。