gboquizosanchez / filament-log-viewer
Filament Log Viewer
Package info
github.com/gboquizosanchez/filament-log-viewer
pkg:composer/gboquizosanchez/filament-log-viewer
Requires
- php: ^8.2|^8.3|^8.4
- ext-zip: *
- symfony/polyfill-php83: ^1.33
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.64
- hermes/dependencies: ^1.1
- larastan/larastan: ^2.9
- orchestra/testbench: ^9.1
- pestphp/pest: ^3.5
- 2.x-dev
- 2.3.0
- 2.2.3
- 2.2.2
- 2.2.1
- 2.2.0
- 2.1.8
- 2.1.7
- 2.1.6
- 2.1.5
- 2.1.4
- 2.1.3
- 2.1.2
- 2.1.1
- 2.1.0
- 2.0.0
- 2.0.0-beta5
- 2.0.0-beta4
- 2.0.0-beta3
- 2.0.0-beta2
- 2.0.0-beta1
- 1.x-dev
- 1.4.4
- 1.4.3
- 1.4.2
- 1.4.1
- 1.4.0
- 1.3.8
- 1.3.7
- 1.3.6
- 1.3.5
- 1.3.4
- 1.3.3
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.8
- 1.2.7
- 1.2.6
- 1.2.5
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.1
- 1.0.0
- dev-main
This package is auto-updated.
Last update: 2026-04-07 12:36:23 UTC
README
gboquizosanchez/filament-log-viewer
Log Viewer plugin for Filament panels
Browse, filter, and manage your Laravel log files directly inside your Filament panel.
Overview
This plugin integrates a full-featured log viewer into any Filament panel. Browse log entries by level, filter by date, and inspect stack traces — all without leaving your admin interface.
Based on ARCANEDEV LogViewer.
Version compatibility
| Plugin | Filament |
|---|---|
| 1.x | 3.x |
| 2.x | 4.x – 5.x |
Important
Version 1.x won't receive any further updates.
📦 Installation
composer require gboquizosanchez/filament-log-viewer
Register the plugin in your panel provider (app/Providers/Filament/AdminPanelProvider.php):
->plugin(\Boquizo\FilamentLogViewer\FilamentLogViewerPlugin::make())
Optionally, publish the configuration file:
php artisan vendor:publish --provider="Boquizo\FilamentLogViewer\FilamentLogViewerServiceProvider"
Important
Filament v4+ requires a custom theme. Follow the Filament docs to set one up, then add this line to your theme's CSS source:
@source '../../../../vendor/gboquizosanchez/filament-log-viewer/resources/views/**/*.blade.php';
🔧 Drivers
By default, the plugin reads from the LOG_CHANNEL defined in your .env. You can override this with a dedicated environment variable:
FILAMENT_LOG_VIEWER_DRIVER=raw
| Driver | Description |
|---|---|
daily |
Default — mirrors your LOG_CHANNEL=daily setting |
single |
Standard Laravel single-file driver |
raw |
Shows all log files; only available via FILAMENT_LOG_VIEWER_DRIVER |
If
FILAMENT_LOG_VIEWER_DRIVERis not set, the plugin falls back toLOG_CHANNEL.
⚙️ Configuration
All plugin options are chainable:
->plugins([ \Boquizo\FilamentLogViewer\FilamentLogViewerPlugin::make() ->navigationGroup('System') ->navigationSort(2) ->navigationIcon(Heroicon::OutlinedDocumentText) ->navigationLabel('Log Viewer') ->timezone('Europe/Madrid') ->authorize(fn (): bool => auth()->user()->can('view-logs')), ])
View in modal
By default, clicking "View" opens the log in a full page. You can enable modal mode instead.
Via .env:
FILAMENT_LOG_VIEWER_VIEW_IN_MODAL=true
Or programmatically:
->plugins([ \Boquizo\FilamentLogViewer\FilamentLogViewerPlugin::make() ->viewInModal(), ])
When using modal view, you may want to block direct URL access to the ViewLog page by registering a custom page that denies access:
->plugins([ \Boquizo\FilamentLogViewer\FilamentLogViewerPlugin::make() ->viewInModal() ->viewLog(\App\Filament\LogViewer\Pages\ViewLogDenied::class), ])
🧩 Custom Pages
You can extend the built-in pages to add your own behaviour.
Custom log list — e.g. auto-refresh every 30 seconds:
// app/Filament/Pages/CustomListLogs.php namespace App\Filament\Pages; use Boquizo\FilamentLogViewer\Pages\ListLogs as BaseListLogs; use Filament\Tables\Table; class CustomListLogs extends BaseListLogs { protected static ?string $navigationLabel = 'Application Logs'; protected static ?string $navigationGroup = 'Monitoring'; public function table(Table $table): Table { return parent::table($table) ->defaultPaginationPageOption(25) ->poll('30s'); } }
Custom log viewer — e.g. add an export action:
// app/Filament/Pages/CustomViewLog.php namespace App\Filament\Pages; use Boquizo\FilamentLogViewer\Pages\ViewLog as BaseViewLog; use Filament\Actions\Action; use Filament\Support\Icons\Heroicon; class CustomViewLog extends BaseViewLog { protected function getHeaderActions(): array { return array_merge(parent::getHeaderActions(), [ Action::make('export') ->label('Export to CSV') ->icon(Heroicon::OutlinedArrowDownTray) ->action(fn () => $this->exportToCsv()), ]); } private function exportToCsv(): void { // Custom export logic } }
Then register your custom pages in the plugin:
->plugins([ \Boquizo\FilamentLogViewer\FilamentLogViewerPlugin::make() ->listLogs(\App\Filament\Pages\CustomListLogs::class) ->viewLog(\App\Filament\Pages\CustomViewLog::class) ->navigationGroup('System') ->navigationSort(2) ->navigationIcon(Heroicon::DocumentText) ->navigationLabel('System Logs') ->timezone('Pacific/Auckland') ->authorize(fn (): bool => auth()->user()->hasAnyRole(['admin', 'developer'])), ])
🧪 Testing
composer test
Contributing
Contributions are welcome!
- 🐛 Report bugs via GitHub Issues
- 💡 Suggest features or improvements
- 🔧 Submit pull requests with fixes or enhancements
Credits
- Author: Germán Boquizo Sánchez
- Based on: ARCANEDEV LogViewer
- Contributors: View all contributors
📄 License
This package is open-source software licensed under the MIT License.
