php-core/laravel-telegram-logging
Laravel Telegram logger
Send logs to Telegram chat via Telegram bot
Install
composer require php-core/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"
Telegram Logging Formats
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
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
/startmessage
Change log template at runtime
- Change config for template.
config(['telegram-logger.template'=>'laravel-telegram-logging::custom'])
- Use
Logas usual.
Configuring a different chat id or token per channel
- Add
chat_idortokento 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
Logas 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
Related Packages
Powerful PHP database abstraction layer (DBAL) with many features for database s...
Laravel Serializable Closure provides an easy and secure way to serialize closur...
Cli error handling for console/command-line PHP applications.