subjective-php/psr-log-mongodb

使用 mongo 实现的 PSR LoggerInterface 的具体实现

v2.1.0 2023-05-08 18:56 UTC

This package is auto-updated.

Last update: 2024-09-08 21:52:22 UTC


README

Code Quality

Latest Stable Version Latest Unstable Version License

Total Downloads Monthly Downloads Daily Downloads

这是使用 MongoDB 作为后端存储实现的 PSR-3

文档结构

每个构建的 mongo 文档将包含以下字段。

  • timestamp 当前 UTC 日期/时间
  • level RFC-5424 日志级别
  • message 日志消息
  • context 不适合字符串的额外信息

示例文档

{
	"_id" : ObjectId("57fc0050fc77ae5c017e52b1"),
	"timestamp" : ISODate("2016-10-08T02:02:12.944Z"),
	"level" : "info",
	"message" : "api access",
	"context" : {
		"method" : "GET",
		"resource" : "/widgets/123",
		"status" : 200
	}
}

日志记录器不处理日志保留。 通过设置 TTL 从集合中过期数据

基本用法

<?php

use SubjectivePHP\Psr\Log\MongoLogger;
use MongoDB\Client;

$collection = (new Client())->selectDatabase('testing')->selectCollection('logs');

$logger = new MongoLogger($collection);

$logger->debug('Some debug info');

消息/上下文插值

消息可以包含占位符,这些占位符可以用上下文字符数组中的值替换。在下面的示例中,最终记录的消息将是 User chadicus was created

<?php

use SubjectivePHP\Psr\Log\MongoLogger;
use MongoDB\Client;

$collection = (new Client())->selectDatabase('testing')->selectCollection('logs');

$logger = new MongoLogger($collection);

$logger->info('User {username} was created', ['username' => 'chadicus']);

要求

PSR Log MongoDB 需要 PHP 7.0(或更高版本)。

Composer

要添加库作为本地、项目级依赖项,请使用 Composer!只需将 subjective-php/psr-log-mongodb 添加到项目中的 composer.json

composer require subjective-php/psr-log-mongodb

联系

开发者可通过以下方式联系

运行构建

通过代码签出,在您的 PATH 中获取 Composer 并运行

composer install
./vendor/bin/phpunit
./vendor/bin/phpcs