raifucore / laravel-telegram-logger
Send logs to Telegram
Installs: 38
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/raifucore/laravel-telegram-logger
Requires
- php: ^8.1
- laravel/framework: ^10.0|^11.0|^12.0
- monolog/monolog: ^3.0
This package is auto-updated.
Last update: 2025-09-26 09:57:12 UTC
README
Send logs to Telegram chat via Telegram bot
Install
composer require raifucore/laravel-telegram-logger
Publish config file and views
php artisan vendor:publish --provider "RaifuCore\TelegramLogger\ServiceProvider"
Define Telegram Token and ChatId (users telegram id) and set as environment parameters Add to .env
### TELEGRAM_LOGGER ##########################################################
TELEGRAM_LOGGER_ENABLE=true
TELEGRAM_LOGGER_BOT_TOKEN=7123456789:ABHo3qcH6G1wMi4VPc8xxZZ474UizrF5e6Dk
TELEGRAM_LOGGER_CHAT_ID=-1112223334445
TELEGRAM_LOGGER_MESSAGE_THREAD_ID=
Add to config/logging.php file new channel:
'telegram' => [ 'driver' => 'custom', 'via' => Logger\TelegramLogger::class, 'level' => 'debug', ]
If your default log channel is a stack, you can add it to the stack channel like this
'stack' => [ 'driver' => 'stack', 'channels' => ['single', 'telegram'], ]
Or you can simply change the default log channel in the .env
LOG_CHANNEL=telegram
It is possible to create other blade templates and reference them in the TELEGRAM_LOGGER_TEMPLATE
entry
Create bot
For using this package you need to create Telegram bot
- Go to @BotFather in the Telegram
- Send
/newbot
- Set up name and bot-name for your bot.
- Get token and add it to your .env file (it is written above)
- Go to your bot and send
/start
message
Change log template at runtime
- Change config for template.
config(['telegram-logger.template'=>'laravel-telegram-logging::custom'])
- Use
Log
as usual.
Configuring a different chat id or token per channel
- Add
chat_id
ortoken
to channels inconfig/logging.php
. Overridesconfig('telegram.chat_id')
.
[ 'channels' => [ [ 'company' => [ 'driver' => 'custom', 'via' => TelegramLogger::class, 'chat_id' => env('TELEGRAM_COMPANY_CHAT_ID'), 'token' => env('TELEGRAM_COMPANY_BOT_TOKEN'), 'level' => 'debug' ], 'operations' => [ 'driver' => 'custom', 'via' => TelegramLogger::class, 'chat_id' => env('TELEGRAM_OPERATIONS_CHAT_ID'), 'token' => env('TELEGRAM_OPERATIONS_BOT_TOKEN'), 'level' => 'debug' ] ] ] ]
- Use
Log
as usual.
Lumen support
To make it work with Lumen, you need also run two steps:
- Place config/telegram-logger.php file with following code:
<?php return [ // Telegram logger bot token 'token' => env('TELEGRAM_LOGGER_BOT_TOKEN'), // Telegram chat id 'chat_id' => env('TELEGRAM_LOGGER_CHAT_ID'), // you can define your custom template for message // e.g: logging.template // 'template' => 'some your view path' ];
- Uncomment
$app->withFacades();
and configure the file$app->configure('telegram-logger');
at bootstrap/app.php - Place default Laravel/Lumen logging file to config/logging.php (to add new channel).
Proxy support
To use a proxy server, set the variable in the .env
TELEGRAM_LOGGER_PROXY=proxy_server.com:port