cesarbalzer/laravel-telegram-logger
最新稳定版本:v1.0.6
Composer 安装命令:
composer require cesarbalzer/laravel-telegram-logger
包简介
Canal de log customizado para enviar mensagens de erro para o Telegram
README 文档
README
Laravel Telegram Logger
Este pacote permite que aplicações Laravel enviem logs críticos (error, emergency, etc) diretamente para um grupo ou canal do Telegram usando um bot. Ideal para monitorar falhas em produção em tempo real.
✅ Recursos
- Envio automático de erros via
Log::error(),Log::emergency(), etc. - Suporte a
.envpara configuração rápida. - Ignora mensagens irrelevantes como 404 de scans.
- Integrado com o sistema de logging nativo do Laravel.
🧰 Instalação
composer require cesarbalzer/laravel-telegram-logger:@dev
Se estiver desenvolvendo localmente com um repositório path:
// composer.json "repositories": [ { "type": "path", "url": "./packages/cesarbalzer/laravel-telegram-logger" } ]
⚙️ Configuração
1. Adicione no config/logging.php:
'channels' => [ 'telegram' => [ 'driver' => 'custom', 'via' => CesarBalzer\TelegramLogger\Logger\TelegramLogger::class, 'level' => env('LOG_TELEGRAM_LEVEL'), ], ],
2. Publique a configuração:
php artisan vendor:publish --tag=telegram-logger-config
3. Configure seu .env:
TELEGRAM_BOT_TOKEN=seu_token_aqui TELEGRAM_CHAT_ID=-1001234567890 TELEGRAM_LOG_LEVEL=error
⚠️ O
chat_idde grupos começa com-100seguido dos dígitos do ID.
🤖 Como criar seu Bot no Telegram
- No Telegram, abra o
@BotFather - Envie
/newbote siga as instruções - Copie o
BOT TOKENgerado (ex:123456:ABCDEF...)
💬 Como obter o chat_id do grupo
- Crie um grupo no Telegram
- Adicione o bot ao grupo
- Envie qualquer mensagem no grupo
- Acesse no navegador:
https://api.telegram.org/bot<SEU_BOT_TOKEN>/getUpdates
- Procure algo assim no JSON retornado:
"chat": { "id": -1001234567890, "title": "Nome do Grupo", ... }
Use o id no .env.
🧪 Teste rápido
Você pode testar com uma rota simples ou criar alguns testes forçados:
Route::get('/error', function () { // ✅ Log informativo - não vai para o Telegram Log::info('HttpRequest GET 200 /home', [ 'method' => 'GET', 'endpoint' => '/home', 'status' => 200, 'ip' => request()->ip(), ]); // 🚫 Log ignorado por palavra-chave (não será enviado ao Telegram) Log::error('HttpRequest GET 404 sitemap.xml', [ 'method' => 'GET', 'endpoint' => 'sitemap.xml', 'status' => 404, 'ip' => request()->ip(), ]); // ✅ Log de erro real - será enviado ao Telegram Log::error('🚨 Erro crítico no processamento do pagamento', [ 'user_id' => 999, 'order_id' => 12345, 'status' => 'failed', ]); // ✅ Simulando exceção capturada try { throw new \Exception("Erro de teste proposital em /error"); } catch (\Throwable $e) { Log::error("🚨 Exceção capturada em /error: " . $e->getMessage(), [ 'file' => $e->getFile(), 'line' => $e->getLine(), // Não incluí o trace para não sujar o Telegram ]); } return 'Logs enviados! Verifique o Telegram e o storage/logs/laravel.log'; }); Route::get('/telegram', function () { // ✅ Teste direto no canal Telegram Log::channel('telegram')->error('🚨 Log de teste no canal Telegram', [ 'user_id' => 999, 'ip' => request()->ip(), 'time' => now()->toDateTimeString(), ]); return 'Log enviado!'; });
📄 Licença
MIT © Cesar Balzer
统计信息
- 总下载量: 18
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-07-10