laboiteacode/filament-logs-explorer
Read Laravel log files inside your Filament panel, grouped by channel with a slide-over viewer, in-file search, match navigation, keyboard shortcuts, large-file truncation, and file deletion behind authorization.
Architecture fit
config/logging.php and renders file contents in a slide-over on an existing Filament page.filament:optimize), and the Monolog file-handler convention (single, daily, monolog stream handlers, file-based members of a stack).Integration feasibility
composer require, register the plugin in the panel provider, optionally set navigation group/sort/cluster and an authorization gate. A Filament-fluent developer is done in under an hour.php artisan filament:optimize must be re-run after install and after every upgrade. The cache holds the old, unclustered registration, so a deploy that skips this silently produces a page in the wrong place. Add it to the deploy checklist rather than trusting reviewers to notice.Technical risk
storage/logs-rooted paths are reachable, and confirm symlink handling. Unchanged by this release.navigationGroup, navigationSort, slug) are similarly resolved globally is unverified. In a single-panel admin this is a non-issue. In a multi-panel install (e.g. admin + partner portal + vendor panel), it is a concrete thing to check during the spike.daily file.daily, does it enumerate rotated siblings, and does it handle .gz archives or render them as binary garbage?filament:optimize is not an exception but a silently mis-placed page. Low severity, high annoyance, and it will be attributed to the package rather than the deploy.Key questions
navigationGroup / navigationSort / slug resolve per-panel correctly, or do they share the same registration-time resolution problem the cluster key had in multi-panel installs?canAccess override?daily enumerate rotated files, does stack include all file members, are non-file handlers (stderr, syslog, papertrail) cleanly ignored rather than erroring?Stack fit
single/daily/file-based stack channels: ideal fit. Cluster support now works, so it also fits admin surfaces organized into clusters — a real gap closed for teams that lean on Filament's cluster navigation.stderr/stdout (container-native, twelve-factor), to a PaaS with ephemeral filesystem, or to an aggregator (Datadog, Sentry, Papertrail, CloudWatch). In those cases there is nothing on disk to read on the node serving the request.Migration path
composer remove plus removing one line from the panel provider.composer update, then re-run php artisan filament:optimize wherever components are cached. Skipping the optimize step on a clustered panel is the one way this upgrade goes wrong.Compatibility
composer update.Sequencing
.gz, and a channel that does not exist. Confirm graceful behavior on each.filament:optimize, verify the page lands in the correct cluster in each panel, and confirm other placement options are panel-scoped.Maintenance
filament:optimize after installing or upgrading the package or Filament itself. This is the only new operational tax introduced by v1.0.2 and it is a process fix, not an engineering one.Support
Scaling
logrotate + retention, daily channels with short retention), restricting access to a small group, and treating it as a tail-inspection tool rather than an archive browser.Failure modes
storage/logs) → empty or erroring viewer; silent failure is worse than a clear error..gz) → binary noise unless handled explicitly.Ramp-up
/, n, N, g), so no training program is needed — a one-line note in the on-call runbook suffices, plus a line on the deploy checklist about the Filament component cache.How can I help you explore Laravel packages today?