Send logs to Telegram chat via Telegram bot
grkamil/laravel-telegram-logging is a Laravel package for send logs to telegram chat via telegram bot.
It currently has 162 GitHub stars and 533.563 downloads on Packagist (latest version v1.15.0).
Install it with composer require grkamil/laravel-telegram-logging.
Discover more Laravel packages by grkamil
or browse all Laravel packages to compare alternatives.
Last updated
Send logs to Telegram chat via Telegram bot
composer require grkamil/laravel-telegram-logging
Define Telegram Bot Token and chat id (users telegram id) and set as environment parameters. Add to .env
TELEGRAM_LOGGER_BOT_TOKEN=id:token
TELEGRAM_LOGGER_CHAT_ID=chat_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
Publish config file and views
php artisan vendor:publish --provider "Logger\TelegramLoggerServiceProvider"
You can choose among two different formats that you can specify in the .env file like this :
# Use a minimal log template
TELEGRAM_LOGGER_TEMPLATE = laravel-telegram-logging::minimal
# Or use the backward compatible one (default setting used even without inserting this row)
TELEGRAM_LOGGER_TEMPLATE = laravel-telegram-logging::standard
It is possible to create other blade templates and reference them in the TELEGRAM_LOGGER_TEMPLATE entry
For using this package you need to create Telegram bot
/newbot/start messageconfig(['telegram-logger.template'=>'laravel-telegram-logging::custom'])
Log as usual.chat_id, token or timeout to channels in config/logging.php. Overrides config('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'
]
]
]
]
Log as usual.To make it work with Lumen, you need also run two steps:
<?php
return [
// Telegram logger bot token
'token' => env('TELEGRAM_LOGGER_BOT_TOKEN'),
// Telegram chat id
'chat_id' => env('TELEGRAM_LOGGER_CHAT_ID'),
// Telegram API request timeout in seconds
'timeout' => env('TELEGRAM_LOGGER_TIMEOUT', 5.5),
// you can define your custom template for message
// e.g: logging.template
// 'template' => 'some your view path'
];
$app->withFacades(); and configure the file $app->configure('telegram-logger'); at bootstrap/app.phpTo use a proxy server, set the variable in the .env
TELEGRAM_LOGGER_PROXY=proxy_server.com:port
Telegram API requests use a 10 second timeout by default. To change it, set the variable in the .env
TELEGRAM_LOGGER_TIMEOUT=5