1
私はErrbitサーバにその例外を送信するLaravelアプリケーションを持っています。ここでLaravel Artisanの例外がエラー報告に送信されないようにする
は、例外ハンドラのコードです:
<?php
namespace App\Exceptions;
use Exception;
use Illuminate\Session\TokenMismatchException;
use Illuminate\Auth\Access\AuthorizationException;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Symfony\Component\HttpKernel\Exception\HttpException;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Illuminate\Foundation\Validation\ValidationException;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Airbrake\Notifier;
class Handler extends ExceptionHandler
{
protected $dontReport = [
AuthorizationException::class,
HttpException::class,
ModelNotFoundException::class,
ValidationException::class,
TokenMismatchException::class,
];
public function report(Exception $e)
{
if ($this->shouldReport($e)) {
$options = [
'environment' => app()->environment(),
'host' => config('airbrake.server'),
'projectId' => config('airbrake.api_key'),
'projectKey' => config('airbrake.api_key'),
'rootDirectory' => base_path(),
'secure' => TRUE,
'url' => request()->fullUrl(),
];
$notifier = new Notifier($options);
$notifier->notify($e);
}
return parent::report($e);
}
public function render($request, Exception $e)
{
// Replace `ModelNotFound` with 404.
if ($e instanceof ModelNotFoundException) {
$message = 'Page not found';
if (config('app.debug')) {
$message = $e->getMessage();
}
$e = new NotFoundHttpException($message, $e);
}
$response = parent::render($request, $e);
return $response;
}
}
これは、一般的には本当によく動作しますが、私は職人のコマンドを実行したときに起こるログエラーを回避したいです。ロギングエラーの全体的なポイントには問題が通知されますが、私がコンソールに座っているなら、私はすでに問題について知っています。
私は職人が存在するかどうかを確認するためにスタックトレースを見ていると思ったが、私はそれには二つの問題を参照してください:それは非常に効率的なもののような音はありませんやって- 。
- キューリスナーも職人によって運営されています。実際にはコンソールから実行されていないため、例外を取得する必要があります。
コンソールから実行されるすべての例外の例外レポートをスキップすることはできますが、他のすべての例外についてはそれを維持しますか?実際artisan
のコマンドを実行します