shipsaas / shipsaas-logger
Laravel ShipSaasLogger 通过在每个请求上标记唯一的ID,实现了跨服务器的请求跟踪。大幅提高生产调试效率。
1.0.0
2023-10-25 12:45 UTC
Requires
- php: ^8.1|^8.2
- laravel/framework: ^10|dev-master
Requires (Dev)
- fakerphp/faker: ^v1.20.0
- friendsofphp/php-cs-fixer: ^3.10
- mockery/mockery: ^1.5.1
- orchestra/testbench: ^8
- phpunit/php-code-coverage: ^10
- phpunit/phpunit: ^10
README
Laravel ShipSaasLogger 通过为给定请求的每个日志记录标记唯一的ID 🆔 来实现跨服务器的请求跟踪。
大幅提高您的生产调试效率 ⚒️。
此外,ShipSaasLogger 解决了当您有大量流量时出现的 缺失日志 问题 😎。使生产日志更加可靠,工程师不必再喊“我找不到日志” 🔥。
支持
- Laravel 10+
- PHP 8.2+
安装
安装库
composer require shipsaas/shipsaas-logger
使用
我们发布了一个名为 shipsaas-logger
的新日志驱动器,它处理
- 根据 requestId 创建日志文件,例如:
7a559daf-f1fe-4a97-8eb8-40d0907c986b.log
- 在此处写入基于请求的日志
- 如果
requestId
不存在,则回退到默认日志文件
因此,它解决了缺失日志的问题,因为我们有 独立的日志文件,而不是将日志写入一个文件(在高流量时将混乱日志) 🚀
如今,我们只需告诉 Sumologic(或 Cloudwatch、DataDog 等)同步您的日志文件夹(整个文件夹) 🔥。所有日志都将同步到云端。
设置 config/logging.php
添加一个名为 shipsaas-logger
的新通道,并根据您的需求更改配置
'shipsaas-logger' => [ 'driver' => 'shipsaas-logger', 'path' => storage_path('logs/requests/laravel.log'), // can change to your desired path 'default_log_file' => storage_path('logs/laravel.log'), // can change to your desired path 'id-type' => 'ulid', // uuid, orderedUuid, ulid 'use_json_format' => false, // set to true to write log as JSON ],
更新 .env
将 LOG_CHANNEL
更改为 shipsaas-logger
LOG_CHANNEL=shipsaas-logger
玩耍
现在您已经准备好了,点击一些请求并尝试一下 😎。
class TransferController extends BaseController { public function transfer(): JsonResponse { Log::info('begin transfer', [ 'amount' => ..., 'recipient' => ..., ]); // this log will have uniqueRequestId // ... Log::info('transferred', [ 'amount' => ..., 'recipient' => ..., 'trasaction_id' => ..., ]); // this log will have uniqueRequestId } }
祝贺您,您的应用程序不再有“缺失日志”的痛苦了 😉。
使用(简约风格)
注入唯一请求 ID 日志处理器
只需将此代码段放入您的 AppServiceProvider
// AppServiceProvider.php use ShipSaasUniqueRequestLogger\UniqueRequestIdLoggerInitiator; public function boot(): void { $this->app->booted(fn () => UniqueRequestIdLoggerInitiator::init()); }
玩耍
现在您已经注入了 ShipSaaS Logger,点击一些请求并尝试一下 😎。
注意:简约风格仅将唯一请求ID生成注入到您的应用程序中,它 不会对缺失日志问题有任何改进。
测试
运行 composer test
😆
贡献者
- Seth Phat
贡献与支持项目
请随时提交任何 PR,请遵循 PSR-1/PSR-12 编码约定,并且测试是必须的。
如果这个包对您有帮助,请给它一个 ⭐️⭐️⭐️。谢谢!
许可证
MIT 许可证