adheart/logging
Composer 安装命令:
composer require adheart/logging
包简介
Unified logging stuff for PHP projects
README 文档
README
Уніфіковане логування для PHP-проєктів на базі Monolog + Symfony Bundle:
- єдиний JSON-формат логів (
SchemaFormatterV1); - процесори для нормалізації повідомлень і trace-контексту;
- інтеграція з OpenTelemetry trace context;
- інвентаризація використання логерів через
logging:scan.
Що ви отримуєте після інтеграції
- Автоматичне застосування форматера до Monolog handlers (
setFormatterтам, де підтримується). - Автоматичне підключення вибраних процесорів до всіх Monolog loggers.
- Однакова структура подій у всіх сервісах (поля
timestamp,level,message,context,service,trace,version). - Опціонально: enrichment trace-контекстом з OpenTelemetry і заголовка
cf-ray.
Сумісність
- PHP:
^8.2 - Monolog:
^2.3 || ^3.0 - Symfony components:
symfony/http-kernel:^5.4 || ^6.4 || ^7.0symfony/config:^5.4 || ^6.4 || ^7.0
Додатково для logging:scan:
symfony/consolesymfony/dependency-injectionnikic/php-parser
Встановлення
composer require adheart/logging
Якщо це не Symfony Runtime з Flex, переконайтесь, що бандл зареєстрований вручну в config/bundles.php:
<?php return [ // ... Adheart\Logging\LoggingBundle::class => ['all' => true], ];
Швидкий старт (Symfony)
Створіть config/packages/logging.yaml:
logging: processors: - message_normalizer integrations: - otel_trace formatter: schema_version: '1.0.0' service_name: 'billing-api' service_version: '%env(string:RELEASE_ID)%'
Після цього:
- на всі
monolog.logger*буде додано процесори; - на всі
monolog.handler*буде встановленоSchemaFormatterV1; - логи підуть у стандартизованому JSON.
Базова перевірка після інтеграції
- Очистіть/прогрійте контейнер:
php bin/console cache:clear
- Згенеруйте тестовий лог із будь-якого місця в застосунку:
$logger->info('User logged in', ['user' => ['id' => '123']]);
- Перевірте raw-рядок у stdout/file-handler: має бути валідний JSON з полями
serviceіversion.
Вбудовані alias-и
Processors
message_normalizer→Adheart\Logging\Core\Processors\MessageNormalizerProcessortrace→Adheart\Logging\Core\Processors\TraceContextProcessor
Trace providers
otel→Adheart\Logging\Integration\OpenTelemetry\Trace\OpenTelemetryTraceContextProvidercf_ray→Adheart\Logging\Integration\OpenTelemetry\Trace\CfRayTraceContextProvider
Integrations
otel_trace:- processors:
trace - trace_providers:
otel,cf_ray
- processors:
Кастомізація через alias-и
Можна підключати свої сервіси без форку пакета:
logging: processors: - custom_processor integrations: - custom_trace aliases: processors: custom_processor: '@app.logging.processor.custom' trace_providers: app_provider: '@app.trace.provider' integrations: custom_trace: processors: ['trace'] trace_providers: ['app_provider']
Команда інвентаризації логів
Якщо встановлені dev-залежності для сканера, доступна команда:
php bin/console logging:scan --summary
Приклади:
php bin/console logging:scan --format=json --summary php bin/console logging:scan --logger-name=app --severity-min=error php bin/console logging:scan --path-prefix=src/Billing --exclude-path-prefix=src/Billing/Legacy php bin/console logging:scan --list-loggers
Детальна документація
统计信息
- 总下载量: 28
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: proprietary
- 更新时间: 2026-03-11