View Laravel File-Based Logs In Web
View Laravel/Lumen logs in browser.
Disclaimer
This package is simply a lightweight web interface for Laravel and Lumen file-based logs.
If you need an advanced debugging tool consider trying Telescope, Debugbar, Clockwork or Ray
And if you need an error tracking software consider tring Sentry and Bugsnag.
Live Preview
Visit Here to preview online playground.
Screen Shot
Installation
You can install the package via composer:
composer require mojtabaahn/laravel-web-logs
And it’s done.
You can optionally publish the config file with:
php artisan vendor:publish --provider="Mojtabaahn\LaravelWebLogs\Providers\LaravelWebLogsServiceProvider" --tag="config"
This is the contents of the published config file:
use Mojtabaahn\LaravelWebLogs\Http\Middlewares\Authorize;
return [
/*
|--------------------------------------------------------------------------
| Dashboard Enabled
|--------------------------------------------------------------------------
|
| Here you may specify either dashboard is enabled or not
|
*/
'enabled' => env('WEB_LOGS_ENABLED', true),
/*
|--------------------------------------------------------------------------
| Route Group Attributes
|--------------------------------------------------------------------------
|
| This is the array configuring package route attributes. feel free
| to edit route prefixes, middlewares and anything else.
|
| In case you want to add authorization using default auth driver,
| uncomment web middleware.
|
*/
'route_group_attributes' => [
'prefix' => env('WEB_LOGS_PATH', 'web-logs'),
'middleware' => [
// 'web',
Authorize::class,
],
],
/*
|--------------------------------------------------------------------------
| Lines Per Page
|--------------------------------------------------------------------------
|
| On each request from dashboard to it's back-end how many lines should
| it read of specified log file. Setting this option to a big number
| may reduce dashboard performance!
|
*/
'lines_per_page' => env('WEB_LOGS_LINES_PER_PAGE', 1000),
];
Authorization
Web Logs is enabled by default for all users and guests. In case you want to authorize users before accessing it you must register a viewWebLogs
ability. A good place to do this is in the AuthServiceProvider
that ships with Laravel.
public function boot()
{
$this->registerPolicies();
Gate::define('viewWebLogs', function ($user = null) {
// return true if access to web logs is allowed
});
}
Future Plans
- Add option to auto-append new logs (like
tail -f
) - Lazy-load/Infinite-scroll for big files
- Add guard for accessing routes
- Move stores to Pinia
- Add tests
- Support nested logs (logs in subdirectories)
- Add Day.js and time-zone support
- Add global search option using grep or other fast search methods
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Credits
License
The MIT License (MIT). Please see License File for more information.