Package Data | |
---|---|
Maintainer Username: | jeremykenedy |
Maintainer Contact: | jeremykenedy@gmail.com (jeremykenedy) |
Package Create Date: | 2017-05-19 |
Package Last Update: | 2024-01-21 |
Home Page: | |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-12-16 15:02:46 |
Package Statistics | |
---|---|
Total Downloads: | 218,625 |
Monthly Downloads: | 3,960 |
Daily Downloads: | 144 |
Total Stars: | 129 |
Total Watchers: | 7 |
Total Forks: | 29 |
Total Open Issues: | 0 |
Table of contents:
Laravel exception notifier will send an email of the error along with the stack trace to the chosen recipients. This Package includes all necessary traits, views, configs, and Mailers for email notifications upon your applications exceptions. You can customize who send to, cc to, bcc to, enable/disable, and custom subject or default subject based on environment. Built for Laravel 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, and 5.8+.
Get the errors and fix them before the client even reports them, that's why this exists!
From your projects root folder in terminal run:
composer require jeremykenedy/laravel-exception-notifier
Register the package
Laravel 5.5 and up
Uses package auto discovery feature, no need to edit the config/app.php
file.
Laravel 5.4 and below
Register the package with laravel in config/app.php
under providers
with the following:
jeremykenedy\laravelexceptionnotifier\LaravelExceptionNotifier::class,
Publish the packages view, mailer, and config files by running the following from your projects root folder:
php artisan vendor:publish --tag=laravelexceptionnotifier
In App\Exceptions\Handler.php
include the following classes in the head:
use App\Mail\ExceptionOccured;
use Illuminate\Support\Facades\Log;
use Mail;
use Symfony\Component\Debug\ExceptionHandler as SymfonyExceptionHandler;
use Symfony\Component\Debug\Exception\FlattenException;
In App\Exceptions\Handler.php
replace the report()
method with:
/**
* Report or log an exception.
*
* This is a great spot to send exceptions to Sentry, Bugsnag, etc.
*
* @param \Exception $exception
* @return void
*/
public function report(Exception $exception)
{
$enableEmailExceptions = config('exceptions.emailExceptionEnabled');
if ($enableEmailExceptions === "") {
$enableEmailExceptions = config('exceptions.emailExceptionEnabledDefault');
}
if ($enableEmailExceptions && $this->shouldReport($exception)) {
$this->sendEmail($exception);
}
parent::report($exception);
}
In App\Exceptions\Handler.php
add the method sendEmail()
:
/**
* Sends an email upon exception.
*
* @param \Exception $exception
* @return void
*/
public function sendEmail(Exception $exception)
{
try {
$e = FlattenException::create($exception);
$handler = new SymfonyExceptionHandler();
$html = $handler->getHtml($e);
Mail::send(new ExceptionOccured($html));
} catch (Exception $exception) {
Log::error($exception);
}
}
Configure your email settings in the .env
file.
Add the following (optional) settings to your .env
file and enter your settings:
config/exception.php
EMAIL_EXCEPTION_ENABLED=false
EMAIL_EXCEPTION_FROM='email@email.com'
EMAIL_EXCEPTION_TO='email1@gmail.com, email2@gmail.com'
EMAIL_EXCEPTION_CC=''
EMAIL_EXCEPTION_BCC=''
EMAIL_EXCEPTION_SUBJECT=''
└── laravel-exception-notifier
├── .gitignore
├── LICENSE
├── composer.json
├── readme.md
└── src
├── .env.example
├── App
│ ├── Mail
│ │ └── ExceptionOccured.php
│ └── Traits
│ └── ExceptionNotificationHandlerTrait.php
├── LaravelExceptionNotifier.php
├── config
│ └── exceptions.php
└── resources
└── views
└── emails
└── exception.blade.php
brew install tree
tree -a -I '.git|node_modules|vendor|storage|tests'
Laravel-Exception-Notifier | A Laravel Exceptions Email Notification Package is open-sourced software licensed under the MIT license