sytxlabs / laravel-error-logger
A Laravel package to log errors
Installs: 2 050
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
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
- portavice/laravel-pint-config: ^2.0
Suggests
- ext-simplexml: *
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
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.