bzilee/multichannel-log-notification
Laravel package to send log notifications over multiple channels (Telegram, email, SMS, HTTP). Configure per log level, enable via env, plug into Monolog as a custom channel, and dispatch notifications to a dedicated queue for performance.
A Laravel package for sending log notifications via multiple channels (Telegram, HTTP, SMS, Email) with modular configuration and queue support.
Install the package via Composer:
composer require bzilee/multichannel-log-notification
Publish the configuration file:
php artisan vendor:publish --tag=config
Configure the channels in config/multichannel_log.php and add the necessary environment variables in .env.
Edit your .env file to enable and configure the desired channels:
LOG_CHANNEL=stack
LOG_DEFAULT_CHANNELS=telegram,email
QUEUE_CONNECTION=redis
LOG_TELEGRAM_ENABLED=true
TELEGRAM_BOT_TOKEN=your_bot_token
TELEGRAM_CHAT_ID=your_chat_id
LOG_EMAIL_ENABLED=true
LOG_EMAIL_TO=logs@example.com
Add the multichannel channel to config/logging.php:
'channels' => [
'stack' => [
'driver' => 'stack',
'channels' => ['single', 'multichannel'],
'ignore_exceptions' => false,
],
'multichannel' => [
'driver' => 'monolog',
'handler' => \Bzilee\MultichannelLog\Logging\MultichannelLogHandler::class,
'with' => [
'level' => 'debug',
],
],
]
Notifications are queued for performance. Configure QUEUE_CONNECTION in .env and run:
php artisan queue:work --queue=multichannel-logs
Configure channels per log level in config/multichannel_log.php:
'channels_by_level' => [
'emergency' => ['telegram', 'email', 'sms'],
'error' => ['telegram', 'email'],
'info' => ['email'],
'debug' => ['email'],
],
use Illuminate\Support\Facades\Log;
Log::channel('multichannel')->info('Test multichannel log', ['context' => 'Some context']);
use Bzilee\MultichannelLog\Facades\LogManager;
LogManager::send('Test log message', ['telegram', 'email']);
composer require bzilee/multichannel-log-notification..env and queue.MIT
How can I help you explore Laravel packages today?