Send logs to Telegram chat via Telegram bot
composer require stucchi/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
php artisan vendor:publish --provider "Logger\TelegramLoggerServiceProvider"
In version 1.3.3 a new Logging Format Engine based on blade templates has been introduced.
While off the shelf the behavior is exactly the same as before, 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
- 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
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')
];
- 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).