DEV Community

Cover image for Sending Laravel Logs to Mattermost Channels
Muhammad Hassan
Muhammad Hassan

Posted on

2

Sending Laravel Logs to Mattermost Channels

Mattermost is an open-source platform for communication and collaboration with integrations with many tools. It is mostly considered as an open-source alternative to Slack and Microsoft Teams.

Although Laravel does not have an official log channel driver for Mattermost, we can build a custom Monolog handler that can be easily configured in Laravel apps.

I have created a small package for this purpose that, unlike the existing Mattermost handlers, format the message according to Mattermost docs

Installation

$ composer require muhamadhhassan/laramost
Enter fullscreen mode Exit fullscreen mode

Configuration

In your config/logging.php file, add the mattermost channel to the channels array:

use LaraMost\Formatter\MattermostFormatter;
use LaraMost\Handler\MattermostWebhookHandler;

'channels' => [
    'mattermost' => [
        'driver'  => 'monolog',
        'handler' => MattermostWebhookHandler::class,
        'formatter' => MattermostFormatter::class,
        'with' => [
            'hook' => 'https://your-mattermost.com/hooks/random-string',
        ],
        'level' => 'error'
    ],
],
Enter fullscreen mode Exit fullscreen mode

You can follow the steps here to create an incoming webhook for your channel.

Levels

Monolog levels are used to set the message color and icon

Level Name Level Value Color Emoji
DEBUG 100 #91C4EB 🔍
INFO 200 #91C4EB
NOTICE 250 #99cc33 📝
WARNING 300 #ffcc00
ERROR 400 #cc3300 🐛
CRITICAL 500 #cc3300
EMERGENCY 600 #cc3300 🚨

Usage

Simply, using Laravel Log facade

Log::channel('mattermost')->error('Something went wrong', ['user_id' => 5]);
Enter fullscreen mode Exit fullscreen mode

Will send the following message to your mattermost channel:

Image description

Warning: When you log to the mattermost channel make sure that the level is greater than or equals the one defined in config/logging.php

And there you have it! A simple implementation to send log records to a Mattermost channel.

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read full post →

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more