parhamafkar/laravel-mattermost

Laravel package to log messages to Mattermost using both Bot API and Webhooks

Maintainers

Package info

github.com/parham-afkar/laravel-mattermost

pkg:composer/parhamafkar/laravel-mattermost

Statistics

Installs: 1 067

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.2 2026-03-27 12:00 UTC

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