sytxlabs / laravel-error-logger
A Laravel package to log errors
Requires
- php: ^8.2|^8.3
- guzzlehttp/guzzle: ^7.8
- illuminate/log: ^10|^11
- illuminate/mail: ^10|^11
- illuminate/support: ^10|^11
- m4tthumphrey/php-gitlab-api: ^11.14
- monolog/monolog: ^3
- psr/log: ^3
- symfony/http-client: ^7.0
- symfony/mailer: ^6|^7
Requires (Dev)
- orchestra/testbench: ^8.5|^9.1
- phpunit/phpunit: ^10.4|^11.1
- portavice/laravel-pint-config: ^2.0
README
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.