A Laravel package for viewing and analyzing application log files with an easy-to-navigate interface. This package provides insights into log contents, including log type breakdown, and offers a convenient way to browse through the log directory.
- Log Directory Navigation: Browse through folders and view individual log files.
- Log Analysis: Summarize log entries by type (info, error, warning, etc.).
- Detailed Log Viewer: Display log contents in a structured table format, with modal support for full entry viewing.
- PHP: >= 7.4
- Laravel: 7.x or 11.x
-
Install via Composer:
composer require fixik/log-viewer
-
Publish Configuration and Views (if required):
php artisan vendor:publish --tag=log-viewer-config php artisan vendor:publish --tag=log-viewer-views
The default configuration allows you to specify:
- The log directory path (default is
storage/logs). - Customization for pagination and log display limits.
To customize, open the published configuration file located in config/log-viewer.php.
Add the following route to access the Log Viewer UI:
use Fixik\LogViewer\Controllers\LogViewerController;
Route::prefix('logs')->group(function () {
Route::get('/', [LogViewerController::class, 'index'])->name('logs.index');
Route::get('/view/{filename}', [LogViewerController::class, 'show'])->name('logs.show');
});- Log File List: Navigate to
/logsto view a structured list of available log files. - View Log Details: Click on a log file to see its contents, summaries, and detailed entries.
This package provides a pre-built controller for viewing logs. Here’s how it processes log files:
index(): Retrieves the directory structure of the log directory.show(): Displays details for a specific log file, including a breakdown of log types.
The package includes customizable views:
- Log List View: Displays folders and log files.
- Log Details View: Displays log file contents and includes a modal for individual log entry details.
To customize the view files, edit the files in resources/views/vendor/log-viewer.
To display XML logs, use the following snippet in your Blade templates:
<pre>{{ $xmlContent }}</pre>Specify a different log directory, route or middleware in the config file:
'log_directory' => storage_path('custom-logs'),
'routes' => [
'prefix' => env('LOG_VIEWER_ROUTE_PREFIX', 'log-viewer'),
'middleware' => env('LOG_VIEWER_ROUTE_MIDDLEWARE', 'web'),
]If you encounter issues, please file an issue in the GitHub repository or submit a pull request.
This package is open-sourced software licensed under the MIT license.