Flare by Spatie
  • Features
  • Pricing
  • Docs
  • Blog
  • LOG IN
  • START TRACKING
  • Home
  • Features
  • Pricing
  • Docs
  • Blog
    • Try Flare for free
    • Sign in
Flare Flare Laravel Laravel PHP PHP JavaScript JavaScript
  • General
  • Introduction
  • Installation
  • Censoring collected data
  • Ignoring collected data
  • Laravel Octane
  • Errors
  • Adding custom context
  • Customising error grouping
  • Handling errors
  • Linking to errors
  • Reporting errors
  • Sending logs to Flare
  • Performance
  • Introduction
  • Sampling
  • Limits
  • Modify spans and span events
  • Data Collection
  • Application info
  • Cache events
  • Console commands
  • Customise error report
  • Database transactions
  • Dumps
  • Errors when tracing
  • Exception context
  • External http requests
  • Filesystem operations
  • Git information
  • Glows
  • Identifying users
  • Jobs and queues
  • Laravel context
  • Livewire
  • Logs
  • Queries
  • Redis commands
  • Requests
  • Server info
  • Solutions
  • Spans
  • Stacktrace arguments
  • Views
  • Older Packages
  • Laravel Flare V1
  • Ignition

Customise the error report

Before Flare receives the data collected from your local exception, we allow you to call custom middleware methods.

These methods retrieve the report factory that will eventually be sent to Flare and allow you to add custom information to that report.

You can create a Flare middleware as such:

use Spatie\FlareClient\FlareMiddleware\FlareMiddleware;
use Spatie\FlareClient\ReportFactory;

class MyMiddleware implements FlareMiddleware
{
    public function handle(ReportFactory $report, Closure $next): ReportFactory;
    {
        $report->handled(true);

        return $next($report);
    }
}

You need to register the middleware as follows in the flare.php config file:

use Spatie\FlareClient\Enums\CollectType;

'collects' => FlareConfig::defaultCollects(
    extra: [
        CollectType::FlareMiddleware->value => [
            'middleware' => [
                MyMiddleware::class => [],
            ],
        ],
    ]
),

You can also pass additional options to the middleware as such:

'collects' => FlareConfig::defaultCollects(
    extra: [
        CollectType::FlareMiddleware->value => [
            'middleware' => [
                MyMiddleware::class => ['mark_every_error_handled' => false],
            ],
        ],
    ]
),

The middleware will get a $config array injected within its constructor. You can use this to get the options that were passed to the middleware:

class MyMiddleware implements FlareMiddleware
{
    protected bool $markEveryErrorHandled = false;

    public function __construct(
        array $config
    ) {
        $this->markEveryErrorHandled = $config['mark_every_error_handled'] ?? false;
    }

    public function handle(ReportFactory $report, Closure $next): ReportFactory;
    {
        $report->handled($this->config['mark_every_error_handled']);

        return $next($report);
    }
}
Console commands Database transactions

Monitor your web apps and sites from errors to slowdowns with Flare, the easiest application monitoring platform for Laravel, PHP & Javascript.

  • Platform
  • Error Tracking
  • Performance Monitoring
  • Pricing
  • Support
  • Resources
  • Blog
  • Changelog
  • Documentation
  • Affiliate program
  • Service status
  • Terms of use
  • DPA
  • Privacy & Cookie Policy
Flare