emotality / laravel-telegram-logger
Laravel 扩展包,用于将异常报告到 Telegram 聊天室、群组或频道。
1.0.4
2024-09-25 12:50 UTC
Requires
- php: ^8.1
- ext-json: *
- illuminate/http: ^10.0|^11.0
- illuminate/support: ^10.0|^11.0
- monolog/monolog: ^3.0
Requires (Dev)
- laravel/pint: ^1.15
README
Laravel 扩展包,用于将异常报告到 Telegram 聊天室、群组或频道。
需求
- PHP 8.1+
- Laravel 10
安装
composer require emotality/laravel-telegram-logger
php artisan vendor:publish --provider="Emotality\Telegram\TelegramLoggerServiceProvider"
- 将以下行添加到您的
.env
TELEGRAM_API_KEY="<telegram_api_key>" TELEGRAM_CHAT_ID="<telegram_chat_id>"
- 在您的
config/logging.php
文件中将telegram
块添加到channels
数组中
'channels' => [ ... 'telegram' => [ 'driver' => 'telegram', 'level' => 'error', 'cache_ttl' => env('TELEGRAM_CACHE_TTL', 300), ], ],
注意:有关 cache_ttl
键的更多信息,请参阅以下内容。
- 更新您的日志栈,并在
config/logging.php
中的channels
数组中添加telegram
'stack' => [ 'driver' => 'stack', 'channels' => ['daily', 'telegram'], ..., ],
或更改您 .env
中的 LOG_CHANNEL
LOG_CHANNEL=telegram
缓存 TTL 解释
为每个异常创建一个 MD5 校验和,然后将其缓存您提供的 cache_ttl
秒数。如果缓存中存在该校验和,则不会发送日志。
换句话说,当相同的异常再次发生时,只有第一次发生的异常会被记录。如果 300 秒后它仍然发生,则会再次记录。
每 300 秒只记录相同异常的第一次发生,以避免洪泛 Telegram API 和您的聊天。
cache_ttl
键接受 false
以禁用缓存,这意味着,即使是 1,000 次相同的异常也会被记录到 Telegram。
许可
laravel-telegram-logger 在 MIT 许可下发布。有关详细信息,请参阅 LICENSE。