parhamafkar / laravel-mattermost
Laravel package to log messages to Mattermost using both Bot API and Webhooks
v1.2
2026-03-27 12:00 UTC
Requires
- php: ^8.2
- guzzlehttp/guzzle: ^7.0
- illuminate/http: ^11.0|^12.0|^13.0
- illuminate/support: ^11.0|^12.0|^13.0
- monolog/monolog: ^3.0
This package is auto-updated.
Last update: 2026-03-27 12:03:49 UTC
README
A Laravel logging package that supports Mattermost Bot and Incoming Webhook integrations.
This package allows you to:
- Send Laravel logs directly to Mattermost
- Dynamically choose a Mattermost channel per log entry
- Use either Bot API or Webhook connections
- Control log visibility and structure with context data
๐ฆ Installation
composer require parhamafkar/laravel-mattermost
โ๏ธ Configuration
1. Publish configuration file
php artisan vendor:publish --tag=mattermost-config
2. Add custom log driver
'mattermost' => [ 'driver' => 'custom', 'via' => ParhamAfkar\MattermostLogger\LogChannel::class, 'level' => env('MATTERMOST_LOG_LEVEL', 'debug'), 'channel' => env('MATTERMOST_CHANNEL', 'town-square'), 'type' => env('MATTERMOST_TYPE', 'bot'), ],
3. Add Mattermost to stack channel
'stack' => [ 'driver' => 'stack', 'channels' => ['single', 'mattermost'], ],
4. Environment variables
MATTERMOST_TYPE=bot MATTERMOST_BASE_URL=https://xyz.mattermost.xyz MATTERMOST_BOT_TOKEN=your-bot-token-here MATTERMOST_CHANNEL_PREFIX="develop-" MATTERMOST_WEBHOOK_URL=https://xyz.mattermost.xyz/hooks/your-webhook-token MATTERMOST_CHANNEL=town-square MATTERMOST_USERNAME="Laravel Logger" MATTERMOST_ICON_URL= MATTERMOST_LOG_LEVEL=debug
โ Usage
Facade
Mattermost::send('Hello from Laravel!'); Mattermost::channel('errors')->send('Error message', [ 'user_id' => 1, ]);
Laravel Log
Log::channel('mattermost')->info('User logged in', [ 'channel' => 'user-activity', ]);
๐งช Artisan Commands
php artisan mattermost:test php artisan mattermost:test --channel=errors php artisan mattermost:channels
๐ Available Methods
Mattermost::send(string $message, array $context = []); Mattermost::channel(string $channel)->send(string $message, array $context = []); Mattermost::type('webhook')->send(string $message, array $context = []);
๐ง Channel Resolution
Supports:
- Channel name
- Channel ID
- Prefixed channel ID
Private channels require bot membership.
๐ License
MIT