kholil / nitik
A Laravel package to track and aggregate application errors via custom log driver, with Filament dashboard.
v1.1.1
2026-05-07 07:04 UTC
Requires
- php: ^8.1
- filament/filament: ^4.0|^5.0
- laravel/framework: ^10.0|^11.0|^12.0|^13.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- orchestra/testbench: ^8.0|^9.0|^10.0
- phpunit/phpunit: ^10.0|^11.0
README
Nitik is a robust error tracking package for Laravel and Filament. It aggregates unique errors into a database and provides a sleek dashboard to manage them.
Features
- Unique Error Aggregation: Combines similar errors into a single record with a count of occurrences.
- Smart Stack Trace: Captures and filters stack traces for better readability, skipping internal baggage.
- Filament Integration: Comes with a ready-to-use Filament resource to monitor and manage errors.
- Infinite Loop Protection: Prevents recursive logging loops if the database or driver fails.
Requirements
- PHP:
^8.1 - Laravel:
^10.0 | ^11.0 | ^12.0 - Filament:
^4.0 | ^5.0
Installation
composer require kholil/nitik php artisan migrate
Configuration
1. Publish Config and Migrations
php artisan vendor:publish --tag=nitik
2. Add Log Channel
Add the nitik channel to your config/logging.php:
'channels' => [ 'stack' => [ 'driver' => 'stack', 'channels' => ['single', 'nitik'], 'ignore_exceptions' => false, ], 'nitik' => [ 'driver' => 'nitik', 'level' => 'debug', ], // ... ],
3. Register Filament Plugin
Add the NitikPlugin to your Filament Panel Provider:
use Kholil\Nitik\NitikPlugin; public function panel(Panel $panel): Panel { return $panel // ... ->plugins([ NitikPlugin::make(), ]); }
Artisan Commands
Clean up your error records periodically using these commands:
Clear Resolved Errors
Hapus semua error yang sudah ditandai sebagai 'Resolved'.
php artisan nitik:clear-resolved
Prune Old Errors
Hapus error lama berdasarkan jumlah hari (default: 30 hari).
php artisan nitik:prune --days=30
Configuration Options
Edit config/nitik.php to customize behavior:
log_levels: Array of levels (e.g.,error,critical) to capture.ignore_exceptions: List of exception classes to skip (e.g.,NotFoundHttpException).navigation_group: Label for Filament navigation grouping (default:null).
License
The MIT License (MIT). Please see License File for more information.
