| 1 | <?php |
||
| 13 | class NewRelicExceptionHandler implements ExceptionHandler |
||
| 14 | { |
||
| 15 | |||
| 16 | /** |
||
| 17 | * @var array list of class names of exceptions that should not be reported to New Relic. Defaults to the |
||
| 18 | * NotFoundHttpException class used for 404 requests. |
||
| 19 | */ |
||
| 20 | protected $ignoredExceptions = [ |
||
| 21 | NotFoundHttpException::class, |
||
| 22 | ]; |
||
| 23 | |||
| 24 | |||
| 25 | /** |
||
| 26 | * NewRelicExceptionHandler constructor. |
||
| 27 | * |
||
| 28 | * @param array $ignoredExceptions (optional) |
||
| 29 | */ |
||
| 30 | public function __construct(array $ignoredExceptions = []) |
||
| 36 | |||
| 37 | |||
| 38 | /** |
||
| 39 | * @inheritdoc |
||
| 40 | */ |
||
| 41 | public function report(Exception $e) |
||
| 42 | { |
||
| 43 | if (!in_array(get_class($e), $this->ignoredExceptions)) { |
||
| 44 | $this->logException($e); |
||
| 45 | } |
||
| 46 | } |
||
| 47 | |||
| 48 | |||
| 49 | /** |
||
| 50 | * @inheritdoc |
||
| 51 | */ |
||
| 52 | public function render($request, Exception $e) |
||
| 56 | |||
| 57 | |||
| 58 | /** |
||
| 59 | * @inheritdoc |
||
| 60 | */ |
||
| 61 | public function renderForConsole($output, Exception $e) |
||
| 65 | |||
| 66 | |||
| 67 | /** |
||
| 68 | * Logs the exception to New Relic (if the extension is loaded) |
||
| 69 | * |
||
| 70 | * @param Exception $e |
||
| 71 | */ |
||
| 72 | protected function logException(Exception $e) |
||
| 78 | |||
| 79 | } |
||
| 80 |