feat: Add Filament Log Viewer with Indonesian localization and restrict access to developers.

This commit is contained in:
Yoga Pangestu 2026-03-09 13:08:56 +07:00
parent 7c091ba50c
commit 2e5c4ea55e
4 changed files with 346 additions and 1 deletions

View File

@ -2,6 +2,8 @@
namespace App\Providers\Filament; namespace App\Providers\Filament;
use AchyutN\FilamentLogViewer\FilamentLogViewer;
use App\Enums\RoleEnum;
use App\Filament\Pages\Auth\Login; use App\Filament\Pages\Auth\Login;
use App\Filament\Pages\Profile; use App\Filament\Pages\Profile;
use BezhanSalleh\FilamentShield\FilamentShieldPlugin; use BezhanSalleh\FilamentShield\FilamentShieldPlugin;
@ -110,6 +112,14 @@ public function panel(Panel $panel): Panel
->isActive(fn () => request()->is('admin/manage/delayed-goods')), ->isActive(fn () => request()->is('admin/manage/delayed-goods')),
]) ])
->moreButton(false), ->moreButton(false),
FilamentLogViewer::make()
->navigationGroup('Sistem')
->navigationIcon('heroicon-o-server-stack')
->navigationLabel('Log')
->navigationUrl('/system/logs')
->pollingTime(null)
->authorize(fn (): bool => auth()->user()->hasRole(RoleEnum::DEVELOPER->value)),
]) ])
->navigationGroups([ ->navigationGroups([
'Master', 'Master',

View File

@ -7,6 +7,7 @@
"license": "MIT", "license": "MIT",
"require": { "require": {
"php": "^8.2", "php": "^8.2",
"achyutn/filament-log-viewer": "^1.7",
"ariaieboy/filament-currency": "^2.0", "ariaieboy/filament-currency": "^2.0",
"bezhansalleh/filament-shield": "^4.1", "bezhansalleh/filament-shield": "^4.1",
"diogogpinto/filament-auth-ui-enhancer": "^2.0", "diogogpinto/filament-auth-ui-enhancer": "^2.0",

234
composer.lock generated
View File

@ -4,8 +4,93 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "d6cf9ab33f7e87200635eb1a7e4792dc", "content-hash": "ef2f1d9c3b5a7c7f24a6ccd53da3a5ec",
"packages": [ "packages": [
{
"name": "achyutn/filament-log-viewer",
"version": "v1.7.1",
"source": {
"type": "git",
"url": "https://github.com/achyutkneupane/filament-log-viewer.git",
"reference": "5bbb181a5af8ad517f79f2e173f21bc1f70c84aa"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/achyutkneupane/filament-log-viewer/zipball/5bbb181a5af8ad517f79f2e173f21bc1f70c84aa",
"reference": "5bbb181a5af8ad517f79f2e173f21bc1f70c84aa",
"shasum": ""
},
"require": {
"filament/filament": "^4.0",
"phiki/phiki": "^2.0",
"php": ">=8.2"
},
"require-dev": {
"larastan/larastan": "^3.0",
"laravel/pint": "^1.23",
"orchestra/testbench": "^10.4",
"pestphp/pest": "^3.8",
"pestphp/pest-plugin-laravel": "^3.2",
"pestphp/pest-plugin-livewire": "^3.0",
"phpstan/phpstan": "^2.1",
"rector/rector": "^2.1"
},
"type": "library",
"extra": {
"laravel": {
"providers": [
"AchyutN\\FilamentLogViewer\\LogViewerProvider"
]
}
},
"autoload": {
"psr-4": {
"AchyutN\\FilamentLogViewer\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Achyut Neupane",
"email": "achyutkneupane@gmail.com",
"homepage": "https://achyut.com.np",
"role": "Maintainer"
}
],
"description": "A Filament package to view and manage Laravel logs.",
"keywords": [
"Viewer",
"filament",
"laravel",
"log"
],
"support": {
"issues": "https://github.com/achyutkneupane/filament-log-viewer/issues",
"source": "https://github.com/achyutkneupane/filament-log-viewer/tree/v1.7.1"
},
"funding": [
{
"url": "https://www.buymeacoffee.com/achyutn",
"type": "buy_me_a_coffee"
},
{
"url": "https://buymemomo.com/achyut",
"type": "custom"
},
{
"url": "https://github.com/achyutkneupane",
"type": "github"
},
{
"url": "https://www.patreon.com/Achyut",
"type": "patreon"
}
],
"time": "2026-01-30T17:48:57+00:00"
},
{ {
"name": "akaunting/laravel-money", "name": "akaunting/laravel-money",
"version": "6.0.2", "version": "6.0.2",
@ -4843,6 +4928,77 @@
}, },
"time": "2025-09-24T15:06:41+00:00" "time": "2025-09-24T15:06:41+00:00"
}, },
{
"name": "phiki/phiki",
"version": "v2.1.0",
"source": {
"type": "git",
"url": "https://github.com/phikiphp/phiki.git",
"reference": "b16020573e9f4ad3c9d230c17ed4c84c15356e28"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phikiphp/phiki/zipball/b16020573e9f4ad3c9d230c17ed4c84c15356e28",
"reference": "b16020573e9f4ad3c9d230c17ed4c84c15356e28",
"shasum": ""
},
"require": {
"ext-mbstring": "*",
"league/commonmark": "^2.5.3",
"php": "^8.2",
"psr/simple-cache": "^3.0"
},
"require-dev": {
"illuminate/support": "^11.45",
"laravel/pint": "^1.18.1",
"orchestra/testbench": "^9.15",
"pestphp/pest": "^3.5.1",
"phpstan/extension-installer": "^1.4.3",
"phpstan/phpstan": "^2.0",
"symfony/var-dumper": "^7.1.6"
},
"type": "library",
"extra": {
"laravel": {
"providers": [
"Phiki\\Adapters\\Laravel\\PhikiServiceProvider"
]
}
},
"autoload": {
"psr-4": {
"Phiki\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Ryan Chandler",
"email": "support@ryangjchandler.co.uk",
"homepage": "https://ryangjchandler.co.uk",
"role": "Developer"
}
],
"description": "Syntax highlighting using TextMate grammars in PHP.",
"support": {
"issues": "https://github.com/phikiphp/phiki/issues",
"source": "https://github.com/phikiphp/phiki/tree/v2.1.0"
},
"funding": [
{
"url": "https://github.com/sponsors/ryangjchandler",
"type": "github"
},
{
"url": "https://buymeacoffee.com/ryangjchandler",
"type": "other"
}
],
"time": "2026-01-20T21:26:48+00:00"
},
{ {
"name": "phpoption/phpoption", "name": "phpoption/phpoption",
"version": "1.9.5", "version": "1.9.5",
@ -5991,6 +6147,82 @@
], ],
"time": "2026-02-17T22:08:12+00:00" "time": "2026-02-17T22:08:12+00:00"
}, },
{
"name": "saade/filament-laravel-log",
"version": "v4.0.0",
"source": {
"type": "git",
"url": "https://github.com/saade/filament-laravel-log.git",
"reference": "e8203e47260de3fce75c5484e1014f4fc57adea5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/saade/filament-laravel-log/zipball/e8203e47260de3fce75c5484e1014f4fc57adea5",
"reference": "e8203e47260de3fce75c5484e1014f4fc57adea5",
"shasum": ""
},
"require": {
"filament/filament": "^4.0",
"illuminate/contracts": "^11.0|^12.0",
"php": "^8.2",
"spatie/laravel-package-tools": "^1.15.0"
},
"require-dev": {
"larastan/larastan": "^3.1.0",
"laravel/pint": "^1.0",
"nunomaduro/collision": "^7.0|^8.0",
"orchestra/testbench": "^9.0|^10.0",
"pestphp/pest": "^2.0",
"pestphp/pest-plugin-arch": "^2.0",
"pestphp/pest-plugin-laravel": "^2.0",
"phpstan/extension-installer": "^1.1",
"phpstan/phpstan-deprecation-rules": "^2.0.1",
"phpstan/phpstan-phpunit": "^2.0.4",
"spatie/laravel-ray": "^1.26"
},
"type": "library",
"extra": {
"laravel": {
"providers": [
"Saade\\FilamentLaravelLog\\FilamentLaravelLogServiceProvider"
]
}
},
"autoload": {
"psr-4": {
"Saade\\FilamentLaravelLog\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Saade",
"email": "saade@outlook.com.br",
"role": "Developer"
}
],
"description": "Access laravel.log file through Filament admin panel",
"homepage": "https://github.com/saade/filament-laravel-log",
"keywords": [
"filament-laravel-log",
"laravel",
"saade"
],
"support": {
"issues": "https://github.com/saade/filament-laravel-log/issues",
"source": "https://github.com/saade/filament-laravel-log"
},
"funding": [
{
"url": "https://github.com/saade",
"type": "github"
}
],
"time": "2025-10-02T22:10:33+00:00"
},
{ {
"name": "scrivo/highlight.php", "name": "scrivo/highlight.php",
"version": "v9.18.1.10", "version": "v9.18.1.10",

View File

@ -0,0 +1,102 @@
<?php
declare(strict_types=1);
return [
'placeholder' => 'N/A',
'navigation' => [
'title' => 'Log',
'heading' => 'Log',
'subheading' => '',
'group' => 'Sistem',
'label' => 'Log',
],
'table' => [
'columns' => [
'log_level' => 'Tingkat Log',
'env' => 'Lingkungan',
'file' => 'Nama File',
'message' => 'Ringkasan',
'date' => 'Terjadi Pada',
],
'filters' => [
'env' => [
'label' => 'Lingkungan',
'indicator' => 'Difilter berdasarkan lingkungan',
],
'file' => [
'label' => 'File',
'indicator' => 'Difilter berdasarkan file',
],
'date' => [
'label' => 'Tanggal',
'indicator' => 'Difilter berdasarkan tanggal',
'from' => 'Dari',
'until' => 'Sampai',
],
'date_range' => [
'label' => 'Rentang Tanggal',
'indicator' => 'Difilter berdasarkan rentang tanggal',
],
'indicators' => [
'logs_from_to' => 'Log dari :from sampai :until',
'logs_from' => 'Log dari :from',
'logs_until' => 'Log sampai :until',
],
],
'actions' => [
'view' => [
'label' => 'Lihat',
'heading' => 'Log Error',
],
'read' => [
'label' => 'Baca Email',
'subject' => 'Subjek',
'mail_log' => 'Log Email',
'sent_date' => 'Tanggal Kirim',
],
'refresh' => [
'label' => 'Segarkan',
],
'clear' => [
'label' => 'Hapus',
'success' => 'Semua log telah dihapus!',
],
],
],
'schema' => [
'error-log' => [
'stack' => 'Stack Trace',
],
'json-log' => [
'context' => 'Konteks',
],
],
'mail' => [
'sender' => [
'label' => 'Pengirim',
'name' => 'Nama',
'email' => 'Email',
],
'receiver' => [
'label' => 'Penerima',
'name' => 'Nama',
'email' => 'Email',
],
'content' => 'Konten',
'plain' => 'Teks Biasa',
'html' => 'HTML',
],
'levels' => [
'all' => 'Semua Log',
'alert' => 'Alert',
'critical' => 'Critical',
'debug' => 'Debug',
'emergency' => 'Emergency',
'error' => 'Error',
'info' => 'Info',
'notice' => 'Notice',
'warning' => 'Warning',
'mail' => 'Mail',
],
];