instapage/php-logger

一个基于monolog/monolog的标准化日志与度量格式库。

1.4.0 2024-01-08 09:52 UTC

This package is not auto-updated.

Last update: 2024-09-30 16:45:39 UTC


README

一个基于monolog/monolog的标准化日志与度量格式库。

安装

将此添加到require部分

"instapage/php-logger": "1.4.0"

或者,您可以输入composer require instapage/php-logger:1.4.0

示例

然后在您的应用程序中添加以下代码

<?php

declare(strict_types=1);

use Instapage\Logger\Factory\LoggerFactory;
use Instapage\Metrics\Factory\MetricCollectorFactory;
use Monolog\Logger;

require_once dirname(__DIR__) . '/vendor/autoload.php';

// Preferably put these two on DI
$logger = (new LoggerFactory())->create(
    'my-service',
    Logger::DEBUG
);

$metric = (new MetricCollectorFactory())->create(
    'my-service.worker'
);

// Simple one-liner
$logger->info('User created', ['id' => 123, 'role' => 'admin']);
$metric->collect('Queue size', 42);
$metric->collect('Memory used by worker (MB)', 123.50);

输出

每条日志都是一行。这里的多行只是为了提高可读性。注意字段名称如何根据提供的值类型而变化。

{
    "sChannel":"my-service",
    "sType":"log",
    "sMessage":"User created",
    "iLevel":200,
    "sLevelName":"INFO",
    "oContext": {
        "iId":123,
        "sRole":"admin"
    }
}
{
    "sChannel": "my-service.worker",
    "sType": "metric",
    "sMetricName": "Queue size",
    "iValue": 42
}
{
    "sChannel": "my-service.worker",
    "sType": "metric",
    "sMetricName": "Memory used by worker (MB)",
    "fValue": 123.5
}

如何运行单元测试?

composer test

如何运行代码检查器?

composer lint
# to automatically fix some of the most common errors
composer lint:fix

是Docker爱好者吗?

您还可以使用以下Docker命令尝试该软件包

  • docker compose -f docker/docker-compose.yml up lint
  • docker compose -f docker/docker-compose.yml up lint:fix
  • docker compose -f docker/docker-compose.yml up test
  • docker compose -f docker/docker-compose.yml up example

docker compose -f docker/docker-compose.yml down之后会干净地清理。