수색…


비고

config/mail.php 의 올바른 설정을 보장하여 이메일을 보낼 수 있도록 애플리케이션을 설정하십시오

또한 ENV 변수가 올바르게 설정되어 있는지 확인하십시오.

이 예는 가이드이며 최소한입니다. 원하는대로보기를 탐색하고 수정하고 스타일을 지정합니다. 필요에 맞게 코드를 조정하십시오. 예를 들어, .env 파일에 수신자를 설정하십시오.

오류 보고서 이메일 보내기

Laravel의 예외는 App \ Exceptions \ Handler.php에 의해 처리됩니다.

이 파일에는 기본적으로 두 가지 기능이 있습니다. 보고서 및 렌더링. 우리는 첫 번째

 public function report(Exception $e)

보고서 메서드는 예외를 기록하거나 BugSnag와 같은 외부 서비스로 보내는 데 사용됩니다. 기본적으로 보고서 메서드는 예외가 기록되는 기본 클래스에 예외를 전달하기 만합니다. 그러나 원하는 경우 예외를 로그 할 수 있습니다.

본질적으로이 함수는 단지 오류를 전달하고 아무 일도하지 않습니다. 따라서 비즈니스 로직을 삽입하여 오류를 기반으로 작업을 수행 할 수 있습니다. 이 예에서는 오류 정보가 포함 된 전자 메일을 보내드립니다.

public function report(Exception $e)
{
    if ($e instanceof \Exception) {
        // Fetch the error information we would like to 
        // send to the view for emailing
        $error['file']    = $e->getFile();
        $error['code']    = $e->getCode();
        $error['line']    = $e->getLine();
        $error['message'] = $e->getMessage();
        $error['trace']   = $e->getTrace();

        // Only send email reports on production server
        if(ENV('APP_ENV') == "production"){
            #1. Queue email for sending on "exceptions_emails" queue
            #2. Use the emails.exception_notif view shown below
            #3. Pass the error array to the view as variable $e
            Mail::queueOn('exception_emails', 'emails.exception_notif', ["e" => $error], function ($m) {
                $m->subject("Laravel Error");
                $m->from(ENV("MAIL_FROM"), ENV("MAIL_NAME"));
                $m->to("[email protected]", "Webmaster");
            });

        }
    }

    // Pass the error on to continue processing
    return parent::report($e);
}

이메일에 대한보기 ( "emails.exception_notif")가 아래에 있습니다.

<?php 
$action = (\Route::getCurrentRoute()) ? \Route::getCurrentRoute()->getActionName() : "n/a";
$path = (\Route::getCurrentRoute()) ? \Route::getCurrentRoute()->getPath() : "n/a";
$user = (\Auth::check()) ? \Auth::user()->name : 'no login';
?>

There was an error in your Laravel App<br />

<hr />
<table border="1" width="100%">
    <tr><th >User:</th><td>{{ $user }}</td></tr>
    <tr><th >Message:</th><td>{{ $e['message'] }}</td></tr>
    <tr><th >Action:</th><td>{{ $action }}</td></tr>
    <tr><th >URI:</th><td>{{ $path }}</td></tr>
    <tr><th >Line:</th><td>{{ $e['line'] }}</td></tr>
    <tr><th >Code:</th><td>{{ $e['code'] }}</td></tr>
</table>

응용 프로그램 전체 잡기 ModelNotFoundException

app \ Exceptions \ Handler.php

public function render($request, Exception $exception)
{
    if ($exception instanceof ModelNotFoundException) {
        abort(404);
    }

    return parent::render($request, $exception);
}

Laravel에서 던져진 예외를 catch / 처리 할 수 ​​있습니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow