gboquizosanchez/filament-log-viewer

2.1.5 2025-09-04 17:11 UTC

README

Latest Stable Version Software License Total Downloads

Summary

This package allows you to manage and keep track of each one of your log files in Filament panels.

Based on ARCANEDEV LogViewer.

Starting 🚀

Prerequisites 📋

  • Composer.
  • PHP version 8.3 or higher.

Running 🛠️

Install the package via composer:

composer require gboquizosanchez/filament-log-viewer

And register the plugin on /app/Providers/Filament/AdminPanelProvider.php

->plugin(\Boquizo\FilamentLogViewer\FilamentLogViewerPlugin::make())

You can also publish the configuration file to customize the package:

php artisan vendor:publish --provider="Boquizo\FilamentLogViewer\FilamentLogViewerServiceProvider"

Important

In v4 it's necessary to set up a custom theme following the instructions in the Filament Docs first.

After setting up the custom theme, you need to add this line, if not, the plugin will not work properly.

@source '../../../../vendor/gboquizosanchez/filament-log-viewer/resources/views/**/*.blade.php';

🔧 Drivers

By default, the plugin uses LOG_CHANNEL as the driver.
To override this behavior, set the environment variable in your .env file:

FILAMENT_LOG_VIEWER_DRIVER=raw

📌 Available Drivers

Driver Description
daily Default driver used by the plugin
single Standard Laravel single driver
raw Only available when explicitly using FILAMENT_LOG_VIEWER_DRIVER; shows all log files

👉 Note:
If FILAMENT_LOG_VIEWER_DRIVER is not defined, the plugin will continue using LOG_CHANNEL.

Example .env configuration

Use the default LOG_CHANNEL (daily):

LOG_CHANNEL=daily

Or override to use raw with FILAMENT_LOG_VIEWER_DRIVER:

FILAMENT_LOG_VIEWER_DRIVER=raw

Others configurations

->plugins([
    \Boquizo\FilamentLogViewer\FilamentLogViewerPlugin::make()
        ->navigationGroup('System')
        ->navigationSort(2)
        ->navigationIcon(Heroicon::OutlinedDocumentText)
        ->navigationLabel('Log Viewer')
        ->authorize(fn (): bool => auth()->user()->can('view-logs')),
    // Other plugins
])

Custom Pages Configuration

You can customize the plugin pages by extending the base classes:

// app/Filament/Pages/CustomListLogs.php
<?php

namespace App\Filament\Pages;

use Boquizo\FilamentLogViewer\Pages\ListLogs as BaseListLogs;
use Filament\Tables\Table;
use Filament\Support\Icons\Heroicon;

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'); // Auto-refresh every 30 seconds
    }
}
// app/Filament/Pages/CustomViewLog.php
<?php

namespace App\Filament\Pages;

use Boquizo\FilamentLogViewer\Pages\ViewLog as BaseViewLog;
use Filament\Actions\Action;

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 configuration:

->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')
        ->authorize(function (): bool {
            return auth()->user()->hasAnyRole(['admin', 'developer']);
        }),
    // Other plugins like FilamentEmailPlugin, etc.
])

Screenshots 💄

Panel

PHP dependencies 📦

  • Owenvoke Blade Fontawesome Latest Stable Version

Develop dependencies 🔧

  • Friendsofphp Php Cs Fixer Latest Stable Version
  • Hermes Dependencies Latest Stable Version
  • Larastan Larastan Latest Stable Version
  • Orchestra Testbench Latest Stable Version
  • Pestphp Pest Latest Stable Version

Problems? 🚨

Let me know about yours by opening an issue!

Credits 🧑‍💻

License 📄

MIT License (MIT). See License File.