achyutn/filament-log-viewer
A Filament plugin that reads and displays Laravel log files in a clean, searchable table with stack traces and filtering. Register it in your panel and visit /logs to browse entries.
Architecture fit: This is a narrow, well-scoped Filament plugin for exposing Laravel log files inside an existing Filament admin panel. It fits cleanly where the product already runs Laravel + Filament and needs an internal support/operations console for log triage. It is not a centralized observability platform, not a customer-facing feature, and not a replacement for structured logging, retention, alerting, or SIEM controls. Its contract-based design—LogProvider, LogParser, LogViewerPage, schema classes, and action classes—is the strongest architectural signal: the package can be extended or partially swapped without forking immediately.
Integration feasibility: Feasible for a small team. Installation is Composer plus plugin registration in a Filament panel, with optional config publishing. Authorization is configurable through a boolean or closure, and navigation can be hidden while retaining direct route access. The compatibility matrix is explicit: ^0.x for Filament v3, ^1.x for Filament v4, ^2.x for Filament v5. This is an hours-to-days integration for a Filament-competent engineer, not a multi-sprint platform build. Main feasibility constraints are version pinning, security gating, and validating behavior against real production log formats.
Technical risk: Moderate. The package is MIT, documented, changelogged, released, and has CI badges, but it has only 53 stars and 0 dependents, which is weak ecosystem validation. It appears effectively single-maintainer, so long-term support and Filament-major upgrade cadence are adoption risks. The operational risk is higher than the code risk: Laravel logs routinely contain PII, credentials, tokens, email content, stack traces, and internal hostnames. The mail preview and “Copy as Markdown” features increase exposure surface. Destructive “Clear Logs” behavior must be deliberately disabled or tightly authorized in production. Documentation contains configuration inconsistencies worth validating—for example, the stated default max size versus the env/config example, and differing defaults around delete/copy-markdown behavior.
Key questions:
LOG_ENABLE_DELETE definitively false in production, and is there an audit trail for clears/truncates?TPM recommendation: Treat this as an internal, admin-only operational convenience with a controlled pilot. Do not position it as compliance-grade audit tooling or the primary incident-response system. Pin the package version, validate against the target Filament major, and require explicit authorization and production-safe delete settings before rollout.
Stack fit: Best fit is a Laravel application already using Filament for an internal admin or operations panel, with local file-based Laravel logs and a need for quick human-readable inspection. If the application is not on Filament, this package is the wrong abstraction—use native log tooling or a dedicated log platform instead. If logs are shipped to CloudWatch, Loki, Datadog, or similar, the built-in LocalLogProvider is only a partial fit unless a custom provider is implemented.
Migration path: There is no data migration. The package reads existing log files and adds a Filament page. A low-risk path is: install in a non-production branch, register the plugin in a staging panel, publish the config, set authorization to an explicit admin-only closure, disable delete, set a conservative max file size, and compare displayed entries against the raw log files. If replacing an existing in-app log viewer, run both in parallel for at least one support cycle before removing the old path. If extending, start by swapping only the provider or parser rather than forking the whole package.
Compatibility: The Filament major-version mapping is the critical constraint. Confirm the installed Filament version before requiring the package, then pin the corresponding package major. Verify Composer constraints for PHP and Laravel even though the README focuses on Filament compatibility. The backward-compatible Model\Log facade reduces breakage for existing custom calls, but new work should use the LogProvider contract. Localization is broad, which is useful for multilingual admin teams. Route and navigation behavior—/logs, register-navigation toggle, navigation group/icon/sort—should be tested against existing panel routing conventions.
Sequencing:
Maintenance: Low code footprint but non-zero stewardship. The package is small and MIT-licensed, so forking is possible, but the team should still pin versions and track Filament major upgrades. Single-maintainer concentration and low dependent count mean the organization must own contingency planning. Changelog and release history are positive signals; CI badges suggest basic quality controls. The TPM should assign an owner for version review and a documented fallback if upstream maintenance stalls.
Support: Support is community/GitHub only, with no commercial SLA. The README is substantially better than many low-adoption packages, including configuration, authorization, extension points, localization, and compatibility. However, inconsistencies in defaults and environment examples mean the team should verify behavior in staging rather than rely on documentation alone. Internal runbooks should cover access control, safe clearing, log rotation, cache invalidation expectations, and escalation if parsing breaks.
Scaling: This is a single-panel, file-reading tool. Performance is bounded by log file size, parsing, cache behavior, and polling. The max-file-size setting is the primary guardrail; keep it conservative until real response times are measured. Caching parsed rows by file fingerprint is sensible for repeated page loads, but it does not solve very large files or high-frequency polling. In multi-node or containerized deployments, local logs differ per instance, so the viewer may show only the node serving the request. For distributed systems, plan for a custom provider backed by centralized log storage or keep this tool out of the incident-response critical path.
Failure modes:
Ramp-up: Low for Filament developers and support staff. A capable engineer can install and validate in under a day; support users need only basic training on filters, date range, column toggles, log detail, and safe clear behavior. The TPM should budget time for security review and staging validation rather than installation. Best operational use is internal incident triage, support escalation, and release verification—paired with explicit access control, production-safe deletion settings, and a clear policy that this viewer is not the system of record for logs.
How can I help you explore Laravel packages today?