sytxlabs/laravel-error-logger

A Laravel package to log errors

1.0.0 2024-06-07 09:42 UTC

This package is auto-updated.

Last update: 2024-06-07 09:45:28 UTC


README

MIT Licensed Run tests Check code style Latest Version on Packagist Total Downloads

This package adds a basic logging channel that sends error logs to an email address, discord channel, whatsapp account, telegram chat and a (github/gitlab) issue.

Prerequisites

  • A configured default Laravel mail driver
  • PHP 8.2 or higher
  • Laravel 10.0 or higher

Installation

composer require sytxlabs/laravel-error-logger

Configuration

To configure your Laravel application to use the logger, you should create a logging channel in your logging.php configuration file.

For example a stack channel that logs to the default stack and sends email notifications:

return [
    // ...
    'channels' => [
        // ...    

        'error-log' => [
            'driver' => 'monolog',
            'handler' => \SytxLabs\ErrorLogger\Logging\Monolog\ErrorLogHandler::class,
        ],
    ],
    // ...    
];

You may then set the logging channel in your .env file or as the default logging channel in your logging.php.

LOG_CHANNEL=error-log

Customization

The library offers some customization for the default error-log channel via a config.

It's also possible to publish the configuration for this package with the artisan vendor:publish command.

php artisan vendor:publish --tag=error-logger-config

Choosing the Mail Transport

By default, the application uses the default mail driver of your Laravel application.

To change the mail driver, when changing in the SytxLabs\ErrorLogger\Support\Config class, you can set the email_transport config value.

$config->email_transport = Mail::driver('<Driver>')->getSymfonyTransport();

Known issues

Mail drivers using a 'log' transport

Mail drivers using a \Illuminate\Mail\Transport\LogTransport transport are not supported and the EmailHandler will fall back to a NoopHandler.

However, this automatic fallback currently only works if the selected driver directly uses a LogTransport. If you for example set a RoundRobinTransport with a LogTransport mail driver, it will end up in an infinite recursion loop.