Looking to hire Laravel developers? Try LaraJobs

laravel-log-viewer maintained by ahinest

Description
Laravel package to browse, filter and manage application log files.
Last update
2026/06/16 02:57 (dev-main)
License
Links
Downloads
1

Comments
comments powered by Disqus

Laravel Log Viewer

Tests

Visualizador de logs para Laravel con soporte para Blade, Inertia y API.

Permite inspeccionar archivos de log, filtrar registros, visualizar excepciones y administrar múltiples archivos de log desde una interfaz sencilla.


Características

  • Lectura de archivos .log dentro de storage/logs.

  • Soporte para múltiples archivos de log.

  • Selección dinámica de archivos.

  • Filtros por:

    • Nivel.
    • Canal.
    • Fecha.
    • Registros con excepción.
  • Soporte para:

    • Blade.
    • Inertia.
    • API JSON.
  • Limpieza de archivos de log.

  • Middleware configurables.

  • Compatible con Spatie Laravel Permission.

  • Detección de contexto JSON.

  • Detección de excepciones.

  • Soporte para logs multilinea.


Requisitos

  • PHP 8.1+
  • Laravel 10.x
  • Laravel 11.x
  • Laravel 12.x

Instalación

composer require edwinylil1/laravel-log-viewer

Publicar configuración:

php artisan vendor:publish --tag=logviewer-config

Publicar vistas Blade:

php artisan vendor:publish --tag=logviewer-views

Publicar componentes Vue:

php artisan vendor:publish --tag=logviewer-vue

La vista Inertia publicada es únicamente una referencia.

Debe adaptar:

  • Layout principal.
  • Componentes UI.
  • Sistema de diseño.
  • Tailwind/Shadcn.

a la estructura de su aplicación.

Configuración

Archivo:

config/logviewer.php

Log por defecto

'default_log' => 'laravel.log',

Archivo mostrado al ingresar al visor.


Middleware de acceso

'middleware' => [
    'web',
    'auth',
],

Ejemplos:

'middleware' => [
    'web',
    'auth',
    'permission:view logs',
],
'middleware' => [
    'web',
    'auth',
    'role:super-admin',
],
'middleware' => [
    'web',
    'auth',
    'can:view logs',
],

Compatible con Spatie Laravel Permission.


Middleware para limpieza

'middleware_clear' => [
    'web',
    'auth',
],

Ejemplo:

'middleware_clear' => [
    'web',
    'auth',
    'permission:clear logs',
],

Permite restringir la limpieza de logs independientemente del acceso de lectura.


Habilitar limpieza

'allow_clear' => true,

Si está deshabilitado, la ruta responderá con error HTTP 403.


Logs autorizados para limpieza

'clearable_logs' => [
    'laravel.log',
],

Solo los archivos incluidos en esta lista podrán vaciarse.


Prefijo de rutas

'route' => 'logs',

Genera rutas como:

/logs/log-viewer
/logs/clear

Tipo de interfaz

'ui' => 'blade',

Opciones disponibles:

'blade'
'inertia'
'api'

Vista Blade

'blade_view' => 'logviewer::index',

Vista utilizada cuando ui = blade.


Página Inertia

'inertia_page' => 'LogViewer/Index',

Componente utilizado cuando ui = inertia.


Canales permitidos

'allowed_channels' => [
    'local',
    'stack',
    'daily',
],

Si utilizas canales personalizados deberás agregarlos aquí.


Niveles permitidos

'allowed_levels' => [
    'debug',
    'info',
    'notice',
    'warning',
    'error',
    'critical',
    'alert',
    'emergency',
],

Basados en los niveles estándar de Monolog.


Rutas

Visor de logs

GET /logs/log-viewer

Limpiar log

DELETE /logs/clear

Parámetros:

{
    "log": "laravel.log"
}

Filtros disponibles

Archivo

?log=laravel.log

Nivel

?level=error

Canal

?channel=local

Fecha

?date=2026-06-12

Con excepción

?has_exception=1

Ejemplos

Mostrar errores

/logs/log-viewer?level=error

Mostrar errores del canal local

/logs/log-viewer?channel=local&level=error

Mostrar registros de una fecha

/logs/log-viewer?date=2026-06-12

Mostrar únicamente excepciones

/logs/log-viewer?has_exception=1

Leer otro archivo

/logs/log-viewer?log=test.log

Compatibilidad con Spatie Laravel Permission

Configuración:

'middleware' => [
    'web',
    'auth',
    'permission:view logs',
],

'middleware_clear' => [
    'web',
    'auth',
    'permission:clear logs',
],

Crear permisos:

use Spatie\Permission\Models\Permission;

Permission::create([
    'name' => 'view logs',
]);

Permission::create([
    'name' => 'clear logs',
]);

Arquitectura

El paquete está organizado utilizando:

  • DTOs
  • Actions
  • Services
  • Renderers
  • Form Requests

Componentes principales

Componente Responsabilidad
LogViewerController Orquesta las peticiones HTTP
ReadLogsAction Lee y filtra registros
ClearLogAction Limpia archivos de log
LogParserService Parsea el contenido de los logs
LogFileService Gestiona archivos de log
RendererFactory Resuelve el renderer configurado
BladeRenderer Renderiza vistas Blade
InertiaRenderer Renderiza páginas Inertia
ApiRenderer Retorna respuestas JSON
LogFilters DTO de filtros
LogEntry DTO de registros

Roadmap

Características previstas para futuras versiones:

  • Paginación de registros.
  • Búsqueda por texto.
  • Descarga de archivos de log.
  • Detección automática de canales.
  • Soporte mejorado para logs rotados.
  • Estadísticas por nivel.
  • Visualización enriquecida de contexto JSON.
  • Exportación de registros.

Licencia

MIT