aaix/laravel-error-audit

AI-assisted daily audit of Laravel log errors and warnings, delivered by email.

Maintainers

Package info

github.com/jonaaix/laravel-error-audit

pkg:composer/aaix/laravel-error-audit

Transparency log

Statistics

Installs: 26

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.6.3 2026-07-27 11:26 UTC

This package is auto-updated.

Last update: 2026-07-27 11:27:04 UTC


README

Laravel Error Audit Logo

Laravel Error Audit

AI-assisted daily audit of your Laravel log files, delivered by email.

Latest Version on Packagist Total Downloads GitHub Actions License

Sentry, Kibana and their peers are built for live monitoring at scale. Most applications do not need that. They need a short, honest answer to one question every morning: what broke yesterday, and does any of it belong in today's plan?

This package answers it. It reads every file based log channel your application defines, groups errors and warnings by cause, has an AI model assess each distinct issue once, and mails you the result.

Installation

Install the package via Composer:

composer require aaix/laravel-error-audit

Next, publish the configuration file. This is optional but recommended.

php artisan vendor:publish --provider="Aaix\LaravelErrorAudit\ErrorAuditServiceProvider" --tag="error-audit-config"

A Quick Look

Schedule the daily report

Report generation is on demand — you own the schedule. The command dispatches a queued job by default, so a long run never blocks the scheduler:

Schedule::command('error-audit:send')->dailyAt('07:00');

Preview before anything leaves your application

Log content is sent to a third party AI provider. Inspect exactly what would be sent first — this makes no API call:

php artisan error-audit:preview

Run it manually

php artisan error-audit:send --since="48 hours" --dry-run

How it works

  1. Discover — every single, daily and stack channel in your logging configuration is resolved to the files it actually writes to. Slack, syslog and other non file drivers are skipped. Failed queue jobs — whose exceptions never reach a log file — are read from the failed-job table and included as issues too.
  2. Group — entries are fingerprinted so the same failure lands in one group regardless of the ids, paths, timestamps or addresses it carries.
  3. Redact — credentials, tokens, personal data and generated-looking strings are masked before anything leaves the application. A sample that ends up mostly masked is discarded rather than sent half redacted.
  4. Assess — each distinct issue is analysed once and cached by fingerprint. Ten thousand occurrences of the same exception cost one request; an issue already assessed yesterday costs nothing at all.
  5. Deliver — a responsive email built from Laravel's own mail components, with counters, a timeline chart and one card per issue sorted by urgency.

Documentation

For the full documentation, including every configuration key and the complete redaction pattern list, please visit our full documentation website.