marvinlabs/laravel-discord-logger

Logging to a discord channel in Laravel

Fund package maintenance!
vpratfr

Installs: 454 569

Dependents: 3

Suggesters: 0

Security: 0

Stars: 150

Watchers: 7

Forks: 38

Open Issues: 5

v1.4.2 2024-03-25 08:51 UTC

README

Latest Version on Packagist Software License Total Downloads

marvinlabs/laravel-discord-logger is a laravel package providing a logging handler to send logs to a Discord channel.

Installation

You can install the package via composer:

composer require marvinlabs/laravel-discord-logger

If you are using Laravel 5.5 or later, the service provider will automatically be discovered.

On earlier versions, you need to do that manually. You must install the service provider:

// config/app.php
'providers' => [
    ...
    MarvinLabs\DiscordLogger\ServiceProvider::class
];

You can then publish the configuration file:

php artisan vendor:publish --provider "MarvinLabs\DiscordLogger\ServiceProvider"

Setup

Prepare the discord channel web hook

Create a discord web hook for the channel which will receive the logs.

Prepare the logger configuration

You must add a new channel to your config/logging.php file:

// config/logging.php
'channels' => [
    //...
    'discord' => [
        'driver' => 'custom',
        'via'    => MarvinLabs\DiscordLogger\Logger::class,
        'level'  => 'debug',
        'url'    => env('LOG_DISCORD_WEBHOOK_URL'),
        'ignore_exceptions' => env('LOG_DISCORD_IGNORE_EXCEPTIONS', false),
    ],
];

You can then provide the web-hook URL in your .env file:

LOG_DISCORD_WEBHOOK_URL=https://discordapp.com/api/webhooks/abcd/1234

Use the logger channel

You have two options: log only to discord or add the channel to the stack

Log only to the discord channel

Simply change the .env variable to use the discord channel

LOG_CHANNEL=discord

Add the channel on top of other channels

Add the channel to the stack in the config/logging.php configuration:

// config/logging.php
'channels' => [
    //...
    'stack' => [
        'driver'   => 'stack',
        'channels' => ['single', 'discord'],
    ],
];

Then make sure the logging channel is set to stack in your .env file:

LOG_CHANNEL=stack

Logging to multiple Discord channels

Of course, you can send your log messages to multiple Discord channels. Just create as many channels as desired in config/logging.php and put them in the stack. Each channel should be named differently and should point to a different web hook URL.

What does it look like?

You can get a preview of what it looks like using each of the provided converters.

Screenshot

Version history

See the dedicated change log

Credits

License

The MIT License (MIT). Please see License File for more information.