Stars: 129
Forks: 29
Pull Requests: 20
Issues: 19
Watchers: 3
Last Updated: 2023-08-23 00:58:07
Send logs to Telegram chat via Telegram bot
License: MIT License
Languages: PHP, Blade
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
or token
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'),
// 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