Log Viewer plugin screenshot
Dark mode ready
Multilingual support
Supports v5.x

Log Viewer by Germán Boquizo Sánchez

Community

A Filament plugin for viewing and managing log files.

Tags: Developer Tool
Supported versions:
5.x 4.x 3.x
Germán Boquizo Sánchez avatar Author: Germán Boquizo Sánchez

Package health

Automated checks of this plugin's Composer package

100 / 100
Security 100
Maintenance 100
Ecosystem 100
15 checks
  • Passed: GitHub Actions pinned to SHA
  • Skipped: GitLab CI includes pinned to SHA
  • Passed: Open security advisories
  • Passed: Dependabot PR responsiveness — No open Dependabot PRs.
  • Skipped: Renovate MR responsiveness
  • Passed: Dependabot or Renovate configured
  • Passed: Dependency update cooldown configured
  • Passed: Provides a security policy
  • Passed: Abandoned or archived — No consulted source marks the package abandoned (packagist, github).
  • Passed: Commit and release recency — Active: last commit 1 days ago; last release 159 days ago.
  • Passed: composer.lock not committed by library — composer.lock is absent from the released dist archive.
  • Passed: Dist archive is lean
  • Skipped: Current Laravel version supported
  • Passed: Current PHP version supported — Constraint ^8.2|^8.3|^8.4|^8.5 supports current PHP 8.5.
  • Skipped: Current Symfony version supported
Third-party plugin. This is built by the community, not the Filament team. Filament does not review, endorse, or vet the security of plugins outside the filament/ namespace. Review the source and install at your own risk. Found malware or an unresolved security issue the author won't address? Report it .
Powered by Plumb Last scanned 1 month ago

Documentation

Log Viewer

Log Viewer plugin for Filament panels

Latest Stable Version Total Downloads PHP License: MIT Tests


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.

Panel

#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_DRIVER is not set, the plugin falls back to LOG_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 fix        # fix code style
composer static     # PHPStan analysis
composer coverage   # run tests with coverage

#Contributing

Contributions are welcome!

  • 🐛 Report bugs via GitHub Issues
  • 💡 Suggest features or improvements
  • 🔧 Submit pull requests with fixes or enhancements

#Credits


#📄 License

This package is open-source software licensed under the MIT License.

The author

Germán Boquizo Sánchez avatar Author: Germán Boquizo Sánchez

I am Germán, a web developer with experience in Laravel, FilamentPHP and PHP. I love programming, PHP and Laravel 🥰.

Contact me if you need some help with FilamentPHP or Laravel. I am always happy to help.

Plugins
2
Stars
38

From the same author