如何将每个严重错误例外发送到电子邮件。在当前的Laravel 5.2中,它登录/storage/logs/laravel.log
文件。我希望通过MailHandler邮件发送严重错误,但不知道如何实现它。
在文件中我们得到了这种类型的错误:
[2017-12-07 09:32:51] local.ERROR: ParseError: syntax error, unexpected 'if' (T_IF) in /home/ilogix/Workspace/cudefender/site/app/Http/Controllers/FormsController.php:53
Stack trace:
#0 /home/ilogix/Workspace/cudefender/site/vendor/composer/ClassLoader.php(301): Composer\Autoload\includeFile('/home/ilogix/Wo...')
#1 [internal function]: Composer\Autoload\ClassLoader->loadClass('App\\Http\\Contro...')
#2 [internal function]: spl_autoload_call('App\\Http\\Contro...')
#3 /home/ilogix/Workspace/cudefender/site/vendor/laravel/framework/src/Illuminate/Routing/Route.php(280): ReflectionMethod->__construct('App\\Http\\Contro...', 'index')
我在monolog邮件处理程序的电子邮件中也需要它。
答案 0 :(得分:0)
您可以编辑app/Exceptions/Handler.php
文件以将电子邮件发送到指定地址。例如,将report
功能编辑为:
public function report(Exception $e)
{
try {
\Mail::raw( $e->__toString(), function ( $m ) {
$m->from('no-reply@your-app.com', 'APP_NAME');
$m->to( 'name@domain.com' )->subject('APP_NAME - Fatal Error' );
});
} catch ( \Exception $e ) {
// ignore
}
parent::report($e);
}
此代码会将例外$e
的内容发送到name@domain.com
。您可以更改发件人地址,并根据您的需要进行操作。
根据遇到的错误,您收到的消息如下所示:
Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException in 你的应用内/供应商/ laravel /框架/ SRC /照亮/路由/ RouteCollection.php:161
堆栈跟踪:#0 您的应用程序内/供应商/ laravel /框架/ src目录/照亮/路由/ Router.php(821): 照亮\路由\ RouteCollection->匹配(对象(照亮\ HTTP \请求))
...