OPcodes's Log Viewer is a perfect companion for your Laravel app

Overview

Log Viewer
Easy-to-use, fast, and beautiful

Features | Installation | Configuration | Authorization | Troubleshooting | Credits

Packagist Packagist PHP from Packagist Laravel Version

log-viewer-light-dark

OPcodes's Log Viewer is a perfect companion for your Laravel app.

You will no longer need to read the raw Laravel log files trying to find what you're looking for.

Log Viewer helps you quickly and clearly see individual log entries, to search, filter, and make sense of your Laravel logs fast. It is free and easy to install.

πŸ“Ί Watch a quick 4-minute video showcasing some Log Viewer features.

Features

  • πŸ“‚ View all the Laravel logs in your storage/logs directory,
  • πŸ” Search the logs,
  • 🎚 Filter by log level (error, info, debug, etc.),
  • πŸ”— Sharable links to individual log entries,
  • πŸŒ‘ Dark mode
  • πŸ’Ύ Download & delete log files from the UI,
  • β˜‘οΈ Horizon log support,
  • and more...

Get Started

Requirements

  • PHP 8.0+
  • Laravel 8+

Installation

To install the package via composer, Run:

composer require opcodesio/log-viewer

Usage

Once the installation is complete, you will be able to access Log Viewer directly in your browser.

By default, the application is available at: {APP_URL}/log-viewer.

(for example: https://my-app.test/log-viewer)

Configuration

Config file

To publish the config file, run:

php artisan vendor:publish --tag="log-viewer-config"

Route & Middleware

You can easily change the default route and its middleware in the config/log-viewer.php.

See the configuration below:

    /*
    |--------------------------------------------------------------------------
    | Log Viewer Route
    |--------------------------------------------------------------------------
    | Log Viewer will be available under this URL.
    |
    */

    'route_path' => 'log-viewer',

    /*
    |--------------------------------------------------------------------------
    | Log Viewer route middleware.
    |--------------------------------------------------------------------------
    | The middleware should enable session and cookies support in order for the Log Viewer to work.
    | The 'web' middleware will be applied automatically if empty.
    |
    */

    'middleware' => ['web'],

Authorization

Several things can be configured to have different access based on the user logged in, or the log file in action.

Here are the permissions and how to set them up.

Authorizing Log Viewer access

You can limit who has access to the Log Viewer in several ways.

Via "auth" callback

You can limit access to the Log Viewer by providing a custom authorization callback to the LogViewer::auth() method within your AppServiceProvider, like so:

use Opcodes\LogViewer\Facades\LogViewer;

/**
 * Bootstrap any application services.
 *
 * @return void
 */
public function boot()
{
    LogViewer::auth(function ($request) {
        // return true to allow viewing the Log Viewer.
    });

    // Here's an example:
    LogViewer::auth(function ($request) {
        return $request->user()
            && in_array($request->user()->email, [
                // '[email protected]',
            ]);
    });
}

Via "viewLogViewer" gate

Another easy way to limit access to the Log Viewer is via Laravel Gates. Just define a viewLogViewer authorization gate in your App\Providers\AuthServiceProvider class:

use App\Models\User;
use Illuminate\Support\Facades\Gate;
 
/**
 * Register any authentication / authorization services.
 *
 * @return void
 */
public function boot()
{
    $this->registerPolicies();
 
    Gate::define('viewLogViewer', function (?User $user) {
        // return true if the user is allowed access to the Log Viewer
    });
}

Via middleware

You can easily add authentication to log viewing routes using popular auth middleware in the config/log-viewer.php.

If your application doesn't use the default authentication solutions, you can use the auth.basic HTTP Basic Authentication middleware.

Note: By default, the auth.basic middleware will assume the email column on your users database table is the user's "username".

See the auth middleware configuration below:

    /*
    |--------------------------------------------------------------------------
    | Log Viewer route middleware.
    |--------------------------------------------------------------------------
    | The middleware should enable session and cookies support in order for the Log Viewer to work.
    | The 'web' middleware will be applied automatically if empty.
    |
    */

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

For authorization using Spatie permissions see this discussion

Authorizing log file download

You can limit the ability to download log files via Laravel Gates. Just define a downloadLogFile authorization gate in your App\Providers\AuthServiceProvider class:

use App\Models\User;
use Opcodes\LogViewer\LogFile;
use Illuminate\Support\Facades\Gate;

/**
 * Register any authentication / authorization services.
 *
 * @return void
 */
public function boot()
{
    $this->registerPolicies();
 
    Gate::define('downloadLogFile', function (?User $user, LogFile $file) {
        // return true if the user is allowed to download the specific log file.
    });
}

Authorizing log file deletion

You can limit the ability to delete log files via Laravel Gates. Just define a deleteLogFile authorization gate in your App\Providers\AuthServiceProvider class:

use App\Models\User;
use Opcodes\LogViewer\LogFile;
use Illuminate\Support\Facades\Gate;

/**
 * Register any authentication / authorization services.
 *
 * @return void
 */
public function boot()
{
    $this->registerPolicies();
 
    Gate::define('deleteLogFile', function (?User $user, LogFile $file) {
        // return true if the user is allowed to delete the specific log file.
    });
}

Troubleshooting

Here are some common problems and solutions.

Problem: "Livewire not defined" or other errors in the browser's console

This is most often caused by your project being served from a sub-folder, like example.com/your-laravel-project/log-viewer.

Livewire by default tries to load its resources from the root of the domain, like example.com/livewire/livewire.js, but if that's outside your project's sub-folder, then you need to set a different asset_url. You can read more about it here.

Fortunately, the fix is easy:

  1. Publish the Livewire config:
php artisan livewire:publish --config
  1. Set the asset_url option in the config/livewire.php file to your app's subdomain:
    'asset_url' => '/your-laravel-project',

Problem: Logs not loading

At the moment, Log Viewer is only able to process Laravel logs that look something like this:

[2022-08-25 11:16:17] local.DEBUG: Example log entry for the level debug {"one":1,"two":"two","three":[1,2,3]}
Multiple lines are allowed
and will be picked up as contents
of the same log entry.

If your logs are structured differently, then you'll have to wait until we ship support for custom log formats. Otherwise, please adjust your log format to Laravel's default.

Screenshots

Read the release blog post for screenshots and more information about Log Viewer's features.

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.

Comments
  • Undefined array key 1

    Undefined array key 1

    Hello

    I've seen this has been brought up before in #84 previously. We are using v1.4.2 which should be the latest version.

    You should be able to reproduce it using this dump and the latest Laravel release: https://pastebin.com/5QF5fB2V This only happens when you toggle either of the checkboxes (Error / None).

    opened by mabdullahsari 8
  • Optionally group file list by subfolder

    Optionally group file list by subfolder

    I have a project which requires 2 globs in order to find all the log files (both directly in the logs folder and in subfolders)

    return [
       // ...
       'include_files' => ['*.log', '**/*.log'],
       // ...
    ];
    

    This makes the file list a bit unintuitive, since the first file isn't necessarily the most recent. So I've tried to add the ability to group the file list by subfolder. The root folder is always first, then subfolders are listed in alphabetical order.

    It's just a quick proof of concept. Let me know if you want some changes.

    By the way, it's necessary to run view:clear to get rid of the old version of file-list.blade.php. I thought the blade compiler would automatically detect that the cached view should be replaced. Is it that just how it is with vendor blade views?

    opened by mortenscheel 8
  • No logs streamed

    No logs streamed

    Hello,

    I tried using the package and it loads log files just fine (I can even download them with full content), however I am not getting anything in the view.

    I am using non-published conf (all defaults), latest version (1.2.4) with L9.13.0. Also tried chmod -R 777 storage, didn't help. Also tried flushing cache.

    I am running a Docker container with Roadrunner server.

    image

    opened by Norgul 8
  • Error with Livewire after installation

    Error with Livewire after installation

    Hi, just installed the package and was presented with this error upon clicking on a .log file in the panel on the left:

    Livewire encountered corrupt data when trying to hydrate the [opcodes.log-viewer.http.livewire.log-list] component. Ensure that the [name, id, data] of the Livewire component wasn't tampered with between requests.

    Does anyone have ideas on how to resolve?

    opened by mangrovestudios 7
  • Undefined variable $selectedFile on new install

    Undefined variable $selectedFile on new install

    I just did a new composer install to a new site, went to /log-viewer on my site and immediately got the error:

    Undefined variable $selectedFile 
    

    and the stack trace pointed to line 48 of resources/views/index.blade.php

    In a recent commit, that line changed:

     -           @livewire('log-viewer::file-list', ['selectedFileIdentifier' => $selectedFileIdentifier])
     +           @livewire('log-viewer::file-list', ['selectedFileIdentifier' => $selectedFile?->identifier])
    

    Switching it back to the previous version of that line seems to fix it.

    opened by woodseowl 6
  • production.ERROR: Class

    production.ERROR: Class "Opcodes\LogViewer\Utils\Utils" not found

    Hi, on production server sometimes this error occurs

    [2022-10-08 22:26:55] production.ERROR: Class "Opcodes\LogViewer\Utils\Utils" not found (View: /var/www/vhosts/topoleiloes.com.br/httpdocs/vendor/opcodesio/log-viewer/resources/views/livewire/log-list.blade.php) {"userId":20000,"exception":"[object] (Illuminate\\View\\ViewException(code: 0): Class \"Opcodes\\LogViewer\\Utils\\Utils\" not found (View: /var/www/vhosts/topoleiloes.com.br/httpdocs/vendor/opcodesio/log-viewer/resources/views/livewire/log-list.blade.php)

    CleanShot 2022-10-08 at 22 34 29@2x
    opened by Tiagospem 5
  • No log files exist if the project path contains square brackets

    No log files exist if the project path contains square brackets

    Hello,

    The wrong behavior:

    When opening the log-viewer no log files exist.

    The cause:

    Using PHP glob() function to get the log files breaks the package if the project path contains square brackets. This is a known issue with glob() function (https://bugs.php.net/bug.php?id=33047).

    Example path:

    D:\laravel\[2]New\

    Glob() is used here:

    https://github.com/opcodesio/log-viewer/blob/ba4a4936715e2251d7316a8e4800ed9e1ee76017/src/LogViewerService.php#L39

    If you can use another approach to get the log files, it will be great!

    Specs:

    PHP: 8.1.6 Laravel: 8.83.23 OS: Windows 10

    opened by EmadFathy 5
  • Undefined Array Key 1

    Undefined Array Key 1

    I read the #84 and #102 and i'm on version 1.4.5, but parsing the logs raise the exception.

    Exception: https://flareapp.io/share/xmN3KqpP#F59 Full Logs: https://pastebin.com/AHUrCin9

    Laravel Version: 8.83.23 PHP Version: 8.0.1

    opened by michele-grifa 5
  • Exception when parsing some logs

    Exception when parsing some logs

    Have some logs and when log-viewer parse them it gets exception:

    [previous exception] [object] (TypeError(code: 0): call_user_func(): Argument #1 ($callback) must be a valid callback, no array or string given at /app/vendor/laravel/framework/src/Illuminate/Pagination/AbstractPaginator.php:558)
    [stacktrace]
    #0 /app/vendor/laravel/framework/src/Illuminate/Pagination/AbstractPaginator.php(558): call_user_func(NULL)
    #1 /app/vendor/laravel/framework/src/Illuminate/Pagination/LengthAwarePaginator.php(91): Illuminate\\Pagination\\AbstractPaginator::viewFactory()
    #2 /app/vendor/laravel/framework/src/Illuminate/Pagination/LengthAwarePaginator.php(79): Illuminate\\Pagination\\LengthAwarePaginator->render('log-viewer::pag...', Array)
    #3 /app/storage/framework/views/08e87b02738ad190ed3ebbad40f202ab8083fd18.php(125): Illuminate\\Pagination\\LengthAwarePaginator->links('log-viewer::pag...')
    #4 /app/vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php(83): include('/app/storage/fr...')
    #5 /app/vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php(84): Opcodes\\LogViewer\\Http\\Livewire\\LogList->Livewire\\ComponentConcerns\\{closure}()
    #6 /app/vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php(59): Livewire\\LivewireViewCompilerEngine->evaluatePath('/app/storage/fr...', Array)
    #7 /app/vendor/laravel/framework/src/Illuminate/View/View.php(139): Livewire\\LivewireViewCompilerEngine->get('/app/vendor/opc...', Array)
    #8 /app/vendor/laravel/framework/src/Illuminate/View/View.php(122): Illuminate\\View\\View->getContents()
    #9 /app/vendor/laravel/framework/src/Illuminate/View/View.php(91): Illuminate\\View\\View->renderContents()
    #10 /app/vendor/livewire/livewire/src/Component.php(235): Illuminate\\View\\View->render()
    #11 /app/vendor/livewire/livewire/src/HydrationMiddleware/RenderView.php(14): Livewire\\Component->output()
    #12 /app/vendor/livewire/livewire/src/LifecycleManager.php(154): Livewire\\HydrationMiddleware\\RenderView::dehydrate(Object(Opcodes\\LogViewer\\Http\\Livewire\\LogList), Object(Livewire\\Response))
    #13 /app/vendor/livewire/livewire/src/Connection/ConnectionHandler.php(15): Livewire\\LifecycleManager->dehydrate()
    #14 /app/vendor/livewire/livewire/src/Controllers/HttpConnectionHandler.php(20): Livewire\\Connection\\ConnectionHandler->handle(Array)
    #15 /app/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(48): Livewire\\Controllers\\HttpConnectionHandler->__invoke('log-viewer::log...')
    #16 /app/vendor/laravel/framework/src/Illuminate/Routing/Route.php(262): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(Livewire\\Controllers\\HttpConnectionHandler), '__invoke')
    #17 /app/vendor/laravel/framework/src/Illuminate/Routing/Route.php(205): Illuminate\\Routing\\Route->runController()
    #18 /app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(721): Illuminate\\Routing\\Route->run()
    #19 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
    #20 /app/app/Http/Middleware/LogUserAction.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #21 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\LogUserAction->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #22 /app/app/Http/Middleware/RequestLogger.php(22): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #23 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\RequestLogger->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #24 /app/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #25 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #26 /app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(78): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #27 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #28 /app/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #29 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #30 /app/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #31 /app/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest(Object(Illuminate\\Http\\Request), Object(Illuminate\\Session\\Store), Object(Closure))
    #32 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Session\\Middleware\\StartSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #33 /app/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #34 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #35 /app/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #36 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #37 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #38 /app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(723): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
    #39 /app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(698): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))
    #40 /app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(662): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route))
    #41 /app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(651): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))
    #42 /app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(167): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))
    #43 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))
    #44 /app/vendor/livewire/livewire/src/DisableBrowserCache.php(19): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #45 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Livewire\\DisableBrowserCache->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #46 /app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #47 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #48 /app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(36): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #49 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #50 /app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #51 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #52 /app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #53 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #54 /app/app/Http/Middleware/ClockworkMiddleware.php(29): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #55 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\ClockworkMiddleware->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #56 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #57 /app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(142): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
    #58 /app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(111): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
    #59 /app/public/index.php(55): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
    #60 {main}
    
    opened by igor-d-n 5
  • Filtering by log type and then changing log causes fatal error

    Filtering by log type and then changing log causes fatal error

    Hello - this package looks lovely, and I'm excited to use it in my app!

    I've found a bug which I seem to be able to reproduce reliably.

    1. Select a log file from the left hand side
    2. Filter out 'Notice' (or any other log type) at the top
    Screenshot 2022-08-30 at 16 34 15
    1. Change log file to a different one
    Screenshot 2022-08-30 at 16 34 20

    This then causes a fatal error, as demonstrated below.

    Let me know if you require any more info. Cheers!

    Undefined array key 1 {"view":{"view":"/var/www/app/vendor/opcodesio/log-viewer/resources/views/index.blade.php","data":[]},"exception":"[object] (Spatie\\LaravelIgnition\\Exceptions\\ViewException(code: 0): Undefined array key 1 at /var/www/app/vendor/opcodesio/log-viewer/src/Log.php:52)
    [stacktrace]
    #0 /var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php(259): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError()
    #1 /var/www/app/vendor/opcodesio/log-viewer/src/Log.php(52): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->Illuminate\\Foundation\\Bootstrap\\{closure}()
    #2 /var/www/app/vendor/opcodesio/log-viewer/src/LogReader.php(572): Opcodes\\LogViewer\\Log->__construct()
    #3 /var/www/app/vendor/opcodesio/log-viewer/src/LogReader.php(535): Opcodes\\LogViewer\\LogReader->makeLog()
    #4 /var/www/app/vendor/opcodesio/log-viewer/src/LogReader.php(499): Opcodes\\LogViewer\\LogReader->next()
    #5 /var/www/app/vendor/opcodesio/log-viewer/src/LogReader.php(563): Opcodes\\LogViewer\\LogReader->get()
    #6 /var/www/app/vendor/opcodesio/log-viewer/src/Http/Livewire/LogList.php(74): Opcodes\\LogViewer\\LogReader->paginate()
    #7 /var/www/app/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Opcodes\\LogViewer\\Http\\Livewire\\LogList->render()
    #8 /var/www/app/vendor/laravel/framework/src/Illuminate/Container/Util.php(41): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
    #9 /var/www/app/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\\Container\\Util::unwrapIfClosure()
    #10 /var/www/app/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(37): Illuminate\\Container\\BoundMethod::callBoundMethod()
    #11 /var/www/app/vendor/laravel/framework/src/Illuminate/Container/Container.php(651): Illuminate\\Container\\BoundMethod::call()
    #12 /var/www/app/vendor/livewire/livewire/src/Component.php(173): Illuminate\\Container\\Container->call()
    #13 /var/www/app/vendor/livewire/livewire/src/LifecycleManager.php(131): Livewire\\Component->renderToView()
    #14 /var/www/app/vendor/livewire/livewire/src/LivewireManager.php(108): Livewire\\LifecycleManager->renderToView()
    #15 /var/www/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(338): Livewire\\LivewireManager->mount()
    #16 /var/www/app/vendor/opcodesio/log-viewer/src/../resources/views/index.blade.php(52): Illuminate\\Support\\Facades\\Facade::__callStatic()
    #17 /var/www/app/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(109): require('...')
    #18 /var/www/app/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(110): Illuminate\\Filesystem\\Filesystem::Illuminate\\Filesystem\\{closure}()
    #19 /var/www/app/vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php(58): Illuminate\\Filesystem\\Filesystem->getRequire()
    #20 /var/www/app/vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php(69): Illuminate\\View\\Engines\\PhpEngine->evaluatePath()
    #21 /var/www/app/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php(61): Livewire\\LivewireViewCompilerEngine->evaluatePath()
    #22 /var/www/app/vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php(35): Illuminate\\View\\Engines\\CompilerEngine->get()
    #23 /var/www/app/vendor/laravel/framework/src/Illuminate/View/View.php(139): Livewire\\LivewireViewCompilerEngine->get()
    #24 /var/www/app/vendor/laravel/framework/src/Illuminate/View/View.php(122): Illuminate\\View\\View->getContents()
    #25 /var/www/app/vendor/laravel/framework/src/Illuminate/View/View.php(91): Illuminate\\View\\View->renderContents()
    #26 /var/www/app/vendor/laravel/framework/src/Illuminate/Http/Response.php(69): Illuminate\\View\\View->render()
    #27 /var/www/app/vendor/laravel/framework/src/Illuminate/Http/Response.php(35): Illuminate\\Http\\Response->setContent()
    #28 /var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(833): Illuminate\\Http\\Response->__construct()
    #29 /var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(802): Illuminate\\Routing\\Router::toResponse()
    #30 /var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(725): Illuminate\\Routing\\Router->prepareResponse()
    #31 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}()
    #32 /var/www/app/app/Http/Middleware/EnforceOIDCAuth.php(25): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #33 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): App\\Http\\Middleware\\EnforceOIDCAuth->handle()
    #34 /var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #35 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
    #36 /var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(78): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #37 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle()
    #38 /var/www/app/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #39 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle()
    #40 /var/www/app/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #41 /var/www/app/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest()
    #42 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Session\\Middleware\\StartSession->handle()
    #43 /var/www/app/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #44 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle()
    #45 /var/www/app/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #46 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle()
    #47 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #48 /var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(726): Illuminate\\Pipeline\\Pipeline->then()
    #49 /var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(703): Illuminate\\Routing\\Router->runRouteWithinStack()
    #50 /var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(667): Illuminate\\Routing\\Router->runRoute()
    #51 /var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(656): Illuminate\\Routing\\Router->dispatchToRoute()
    #52 /var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(167): Illuminate\\Routing\\Router->dispatch()
    #53 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
    #54 /var/www/app/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestIpMiddleware.php(45): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #55 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Sentry\\Laravel\\Http\\SetRequestIpMiddleware->handle()
    #56 /var/www/app/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestMiddleware.php(42): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #57 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Sentry\\Laravel\\Http\\SetRequestMiddleware->handle()
    #58 /var/www/app/vendor/livewire/livewire/src/DisableBrowserCache.php(19): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #59 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Livewire\\DisableBrowserCache->handle()
    #60 /var/www/app/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php(59): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #61 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Barryvdh\\Debugbar\\Middleware\\InjectDebugbar->handle()
    #62 /var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #63 /var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
    #64 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
    #65 /var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #66 /var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
    #67 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
    #68 /var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #69 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle()
    #70 /var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #71 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
    #72 /var/www/app/vendor/fruitcake/laravel-cors/src/HandleCors.php(38): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #73 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Fruitcake\\Cors\\HandleCors->handle()
    #74 /var/www/app/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(39): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #75 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Http\\Middleware\\TrustProxies->handle()
    #76 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #77 /var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(142): Illuminate\\Pipeline\\Pipeline->then()
    #78 /var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(111): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
    #79 /var/www/app/public/index.php(52): Illuminate\\Foundation\\Http\\Kernel->handle()
    #80 {main}
    
    [previous exception] [object] (ErrorException(code: 0): Undefined array key 1 at /var/www/app/vendor/opcodesio/log-viewer/src/Log.php:52)
    [stacktrace]
    #0 /var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php(259): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError()
    #1 /var/www/app/vendor/opcodesio/log-viewer/src/Log.php(52): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->Illuminate\\Foundation\\Bootstrap\\{closure}()
    #2 /var/www/app/vendor/opcodesio/log-viewer/src/LogReader.php(572): Opcodes\\LogViewer\\Log->__construct()
    #3 /var/www/app/vendor/opcodesio/log-viewer/src/LogReader.php(535): Opcodes\\LogViewer\\LogReader->makeLog()
    #4 /var/www/app/vendor/opcodesio/log-viewer/src/LogReader.php(499): Opcodes\\LogViewer\\LogReader->next()
    #5 /var/www/app/vendor/opcodesio/log-viewer/src/LogReader.php(563): Opcodes\\LogViewer\\LogReader->get()
    #6 /var/www/app/vendor/opcodesio/log-viewer/src/Http/Livewire/LogList.php(74): Opcodes\\LogViewer\\LogReader->paginate()
    #7 /var/www/app/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Opcodes\\LogViewer\\Http\\Livewire\\LogList->render()
    #8 /var/www/app/vendor/laravel/framework/src/Illuminate/Container/Util.php(41): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
    #9 /var/www/app/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\\Container\\Util::unwrapIfClosure()
    #10 /var/www/app/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(37): Illuminate\\Container\\BoundMethod::callBoundMethod()
    #11 /var/www/app/vendor/laravel/framework/src/Illuminate/Container/Container.php(651): Illuminate\\Container\\BoundMethod::call()
    #12 /var/www/app/vendor/livewire/livewire/src/Component.php(173): Illuminate\\Container\\Container->call()
    #13 /var/www/app/vendor/livewire/livewire/src/LifecycleManager.php(131): Livewire\\Component->renderToView()
    #14 /var/www/app/vendor/livewire/livewire/src/LivewireManager.php(108): Livewire\\LifecycleManager->renderToView()
    #15 /var/www/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(338): Livewire\\LivewireManager->mount()
    #16 /var/www/app/storage/framework/views/d3d0feb23edbf8786ffcc3fab9335e3865e6f626.php(70): Illuminate\\Support\\Facades\\Facade::__callStatic()
    #17 /var/www/app/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(109): require('...')
    #18 /var/www/app/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(110): Illuminate\\Filesystem\\Filesystem::Illuminate\\Filesystem\\{closure}()
    #19 /var/www/app/vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php(58): Illuminate\\Filesystem\\Filesystem->getRequire()
    #20 /var/www/app/vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php(69): Illuminate\\View\\Engines\\PhpEngine->evaluatePath()
    #21 /var/www/app/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php(61): Livewire\\LivewireViewCompilerEngine->evaluatePath()
    #22 /var/www/app/vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php(35): Illuminate\\View\\Engines\\CompilerEngine->get()
    #23 /var/www/app/vendor/laravel/framework/src/Illuminate/View/View.php(139): Livewire\\LivewireViewCompilerEngine->get()
    #24 /var/www/app/vendor/laravel/framework/src/Illuminate/View/View.php(122): Illuminate\\View\\View->getContents()
    #25 /var/www/app/vendor/laravel/framework/src/Illuminate/View/View.php(91): Illuminate\\View\\View->renderContents()
    #26 /var/www/app/vendor/laravel/framework/src/Illuminate/Http/Response.php(69): Illuminate\\View\\View->render()
    #27 /var/www/app/vendor/laravel/framework/src/Illuminate/Http/Response.php(35): Illuminate\\Http\\Response->setContent()
    #28 /var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(833): Illuminate\\Http\\Response->__construct()
    #29 /var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(802): Illuminate\\Routing\\Router::toResponse()
    #30 /var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(725): Illuminate\\Routing\\Router->prepareResponse()
    #31 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}()
    #32 /var/www/app/app/Http/Middleware/EnforceOIDCAuth.php(25): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #33 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): App\\Http\\Middleware\\EnforceOIDCAuth->handle()
    #34 /var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #35 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
    #36 /var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(78): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #37 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle()
    #38 /var/www/app/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #39 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle()
    #40 /var/www/app/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #41 /var/www/app/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest()
    #42 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Session\\Middleware\\StartSession->handle()
    #43 /var/www/app/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #44 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle()
    #45 /var/www/app/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #46 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle()
    #47 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #48 /var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(726): Illuminate\\Pipeline\\Pipeline->then()
    #49 /var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(703): Illuminate\\Routing\\Router->runRouteWithinStack()
    #50 /var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(667): Illuminate\\Routing\\Router->runRoute()
    #51 /var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(656): Illuminate\\Routing\\Router->dispatchToRoute()
    #52 /var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(167): Illuminate\\Routing\\Router->dispatch()
    #53 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
    #54 /var/www/app/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestIpMiddleware.php(45): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #55 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Sentry\\Laravel\\Http\\SetRequestIpMiddleware->handle()
    #56 /var/www/app/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestMiddleware.php(42): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #57 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Sentry\\Laravel\\Http\\SetRequestMiddleware->handle()
    #58 /var/www/app/vendor/livewire/livewire/src/DisableBrowserCache.php(19): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #59 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Livewire\\DisableBrowserCache->handle()
    #60 /var/www/app/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php(59): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #61 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Barryvdh\\Debugbar\\Middleware\\InjectDebugbar->handle()
    #62 /var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #63 /var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
    #64 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
    #65 /var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #66 /var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
    #67 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
    #68 /var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #69 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle()
    #70 /var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #71 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
    #72 /var/www/app/vendor/fruitcake/laravel-cors/src/HandleCors.php(38): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #73 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Fruitcake\\Cors\\HandleCors->handle()
    #74 /var/www/app/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(39): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #75 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Http\\Middleware\\TrustProxies->handle()
    #76 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #77 /var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(142): Illuminate\\Pipeline\\Pipeline->then()
    #78 /var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(111): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
    #79 /var/www/app/public/index.php(52): Illuminate\\Foundation\\Http\\Kernel->handle()
    #80 {main}
    "} 
    
    opened by dkmonaghan 5
  • Implement Dark Mode + File counter

    Implement Dark Mode + File counter

    • Added a dark mode dropdown (I couldn't think of a good place to put it, so it's next to the logo) The switcher defaults to system setting, but will save whatever the user chooses in the session.
    • Added a file counter to show the number of files
    • Linked the "Log Viewer" main text back to the logs home.

    Apologies if I missed anything; I'm not a frontend guy. Also haven't done much testing in other browsers/OSes.

    Screens:

    Home

    image

    image

    image

    image

    opened by shalvah 4
  • Allowed memory size error caused by the package

    Allowed memory size error caused by the package

    Hi. I just added the package to my project and it looks really awesome. Thanks for the such a good tool πŸ”₯

    I have only one problem, when I open log viewer, it triggers an error. PHP memory_limit is 128MB, and chunk size in config is set to 50MB.

    IMG_20230104_005457

    How can we deal with this?

    opened by centerdevs 3
  • Undefined variable $selectedFileIdentifier

    Undefined variable $selectedFileIdentifier

    Upgraded from v1.2.10 to v1.7.2 and get the following error:

    Undefined variable $selectedFileIdentifier

    I am using Laravel v9.45.1 with Inertia v0.11.1

    opened by Zlimon 1
  • Fix tests on windows for using `illuminate/filesystem` and add option for absolute paths

    Fix tests on windows for using `illuminate/filesystem` and add option for absolute paths

    Related: #174

    This pull request fixes tests on windows for using illuminate/filesystem and adds an option for absolute paths.

    The fix for windows was to check for existing files before trying to use the filesize or lastmodified functions.

    I've added the option to enable/disable absolute paths. It is working on my machine but I don't think this is the most optimal or elegant way to solve this problem. With this solution the current features are backwards compatible without any changes in current implementations.

    My idea for handling this problem in the future is to allow for the combination of multiple disks, this way we can use multiple local or cloud folders in the same viewer. Using absolute paths is usually not the most secure way of handling files especially when you are not fully in control of the hosting of your Laravel application.

    opened by Florisbosch 4
  • http://localhost/?file=e0549170-laravel.log

    http://localhost/?file=e0549170-laravel.log

    hi route log viewer is : http://localhost/log-viewer/

    but after click any link file,error,..... changed to 'http://localhost/?file=e0549170-laravel.log'

    opened by mderakhshi 6
  • Livewire encountered corrupt data when trying to hydrate the component.

    Livewire encountered corrupt data when trying to hydrate the component.

    hey guys, i've encountered this error when i added this package to my project. i have followed your instructions and publish all the required configs. but when i want to open a file in my logs list, this page comes up. is there way to fix it? image

    opened by aryala7 7
  • horizon log format changed

    horizon log format changed

    hello it seem that horizon changed the format of logs in latest version

       INFO  Processing jobs from the [default] queue.
    
      2022-09-17 20:02:54 App\Jobs\AddVisitorLogJob ................ 108.33ms DONE
      2022-09-17 20:02:54 App\Jobs\AddEmailLogJob ................... 21.74ms DONE
      2022-09-17 20:02:54 App\Jobs\AddEmailLogJob ................... 10.04ms DONE
      2022-09-17 20:02:57 App\Jobs\ChangeEmailTypeJob ................ 8.37ms DONE
    
       INFO  Processing jobs from the [default] queue.
    
      2022-09-17 20:02:57 App\Jobs\AddVisitorLogJob ................. 95.10ms DONE
      2022-09-17 20:02:57 App\Jobs\AddVisitorLogJob ................. 39.89ms DONE
      2022-09-17 20:02:57 App\Jobs\ChangeEmailTypeJob ............... 15.83ms DONE
      2022-09-17 20:02:57 App\Jobs\AddEmailLogJob ................... 10.97ms DONE
      2022-09-17 20:02:57 App\Jobs\AddEmailLogJob .................... 8.88ms DONE
    

    the result is empty now

    image

    opened by malohtie 2
Releases(v1.7.2)
  • v1.7.2(Nov 22, 2022)

    What's Changed

    • use CarbonInterface typehints for compatibility with immutable Carbon instances by @arukompas in https://github.com/opcodesio/log-viewer/pull/161

    Full Changelog: https://github.com/opcodesio/log-viewer/compare/v1.7.1...v1.7.2

    Source code(tar.gz)
    Source code(zip)
  • v1.7.1(Nov 18, 2022)

    What's Changed

    • add log viewer config activation by @andydptyo in https://github.com/opcodesio/log-viewer/pull/158
    • fix a bug with new logs sometimes overriding index of older logs by @arukompas in https://github.com/opcodesio/log-viewer/pull/159

    New Contributors

    • @andydptyo made their first contribution in https://github.com/opcodesio/log-viewer/pull/158

    Full Changelog: https://github.com/opcodesio/log-viewer/compare/v1.7.0...v1.7.1

    Source code(tar.gz)
    Source code(zip)
  • v1.7.0(Nov 16, 2022)

    What's Changed

    • multiselect-delete-with-alpinejs feature added by @aryaanuj in https://github.com/opcodesio/log-viewer/pull/154
    • small UI improvements to multi-file deletion by @arukompas in https://github.com/opcodesio/log-viewer/pull/157

    New Contributors

    • @aryaanuj made their first contribution in https://github.com/opcodesio/log-viewer/pull/154

    Full Changelog: https://github.com/opcodesio/log-viewer/compare/v1.6.5...v1.7.0

    Source code(tar.gz)
    Source code(zip)
  • v1.6.5(Nov 12, 2022)

    What's Changed

    • fix the bug when file contains an empty log entry by @arukompas in https://github.com/opcodesio/log-viewer/pull/152
    • couple of security updates to JS dependencies

    Full Changelog: https://github.com/opcodesio/log-viewer/compare/v1.6.4...v1.6.5

    Source code(tar.gz)
    Source code(zip)
  • v1.6.4(Oct 26, 2022)

    What's Changed

    • fix how entry indices are generated, so that it also works properly when searching by @arukompas in https://github.com/opcodesio/log-viewer/pull/143
    • a few UI fixes by @arukompas in https://github.com/opcodesio/log-viewer/pull/144

    Full Changelog: https://github.com/opcodesio/log-viewer/compare/v1.6.3...v1.6.4

    Source code(tar.gz)
    Source code(zip)
  • v1.6.3(Oct 20, 2022)

    What's Changed

    • small bugfix by @arukompas in https://github.com/opcodesio/log-viewer/pull/139

    Full Changelog: https://github.com/opcodesio/log-viewer/compare/v1.6.2...v1.6.3

    Source code(tar.gz)
    Source code(zip)
  • v1.6.2(Oct 13, 2022)

    What's Changed

    • fix division by zero when there are empty log files by @arukompas in https://github.com/opcodesio/log-viewer/pull/135

    Full Changelog: https://github.com/opcodesio/log-viewer/compare/v1.6.1...v1.6.2

    Source code(tar.gz)
    Source code(zip)
  • v1.6.1(Oct 11, 2022)

    Global Search

    πŸš€ Log Viewer now provides a way to search across all files.

    • If a particular file is not selected, it will search across all files;
    • If a particular file is selected, it will search only that file.

    If you have tons of log files (more than 100 MB), it even provides a progress bar to tell you how much there's left to search.

    Chunked indices

    Log Viewer indexes the positions of logs inside the files for a much faster retrieval when browsing the logs.

    Previously, Log Viewer created one big index per log file. If that file contains millions of log entries, the index could've gotten over 100 MB in size easily. Loading this index into memory on each pagination request would be not only memory-intensive, but also CPU-intensive (deseralizing the cached index).

    Now, the full index is split into multiple smaller chunks, with the ability to read only the chunk that's contains the required log items. This means Log Viewer can now efficiently browse log files that are even tens of GB in size.

    Note: the speed of reading the full log file and indexing it has not changed. This will still be one of the slowest operations in the Log Viewer, but it's necessary for improved experienced later once the file has been scanned.

    What's Changed

    • Chunking indices + Global Search by @arukompas in https://github.com/opcodesio/log-viewer/pull/127
    • fix the toggling of severities by @arukompas in https://github.com/opcodesio/log-viewer/pull/128

    Full Changelog: https://github.com/opcodesio/log-viewer/compare/v1.5.3...v1.6.1

    Source code(tar.gz)
    Source code(zip)
  • v1.5.3(Oct 6, 2022)

  • v1.5.2(Oct 5, 2022)

    What's Changed

    • more tests for paths on windows by @arukompas in https://github.com/opcodesio/log-viewer/pull/123

    Full Changelog: https://github.com/opcodesio/log-viewer/compare/v1.5.1...v1.5.2

    Source code(tar.gz)
    Source code(zip)
  • v1.5.1(Oct 4, 2022)

    What's Changed

    • refactoring utilities by @arukompas in https://github.com/opcodesio/log-viewer/pull/119
    • Bug / square bracket fix by @arukompas in https://github.com/opcodesio/log-viewer/pull/122

    Full Changelog: https://github.com/opcodesio/log-viewer/compare/v1.5.0...v1.5.1

    Source code(tar.gz)
    Source code(zip)
  • v1.5.0(Sep 30, 2022)

    What's Changed

    • Feature / folder actions by @arukompas in https://github.com/opcodesio/log-viewer/pull/116
    • Bugfix / Reset paginator instance if the page number is out of bounds by @arukompas in https://github.com/opcodesio/log-viewer/pull/117
    • Bugfix / Fix regex error handling by @arukompas in https://github.com/opcodesio/log-viewer/pull/118

    Full Changelog: https://github.com/opcodesio/log-viewer/compare/v1.4.5...v1.5.0

    Source code(tar.gz)
    Source code(zip)
  • v1.4.5(Sep 16, 2022)

    What's Changed

    • refactor how all files are scanned, which will now done asynchronously without affecting initial load time by @arukompas in https://github.com/opcodesio/log-viewer/pull/105

    Full Changelog: https://github.com/opcodesio/log-viewer/compare/v1.4.4...v1.4.5

    Source code(tar.gz)
    Source code(zip)
  • v1.4.4(Sep 14, 2022)

    What's Changed

    • convert log encoding to UTF-8 before working with it by @arukompas in https://github.com/opcodesio/log-viewer/pull/104

    Full Changelog: https://github.com/opcodesio/log-viewer/compare/v1.4.3...v1.4.4

    Source code(tar.gz)
    Source code(zip)
  • v1.4.3(Sep 14, 2022)

    What's Changed

    • Fix a bug where random content at the start of the log file would break the viewer by @arukompas in https://github.com/opcodesio/log-viewer/pull/103

    Full Changelog: https://github.com/opcodesio/log-viewer/compare/v1.4.2...v1.4.3

    Source code(tar.gz)
    Source code(zip)
  • v1.4.2(Sep 13, 2022)

    What's Changed

    • Add a dedicated class for storing user preferences across requests by @arukompas in https://github.com/opcodesio/log-viewer/pull/100
    • This will make sure that user preferences (such as file ordering, number of logs per page, selected severity levels, etc) are stored in a dedicated cookie that lasts a full year, instead of just the current session.

    Full Changelog: https://github.com/opcodesio/log-viewer/compare/v1.4.1...v1.4.2

    Source code(tar.gz)
    Source code(zip)
  • v1.4.1(Sep 12, 2022)

  • v1.4.0(Sep 12, 2022)

    What's Changed

    • Refactor / Severity toggles re-designed into a dropdown to save space by @arukompas in https://github.com/opcodesio/log-viewer/pull/98
    • ability to get the latest or earliest file from the collection by @arukompas in https://github.com/opcodesio/log-viewer/pull/99

    Full Changelog: https://github.com/opcodesio/log-viewer/compare/v1.3.3...v1.4.0

    Source code(tar.gz)
    Source code(zip)
  • v1.3.3(Sep 10, 2022)

    What's Changed

    • small bugfixes and refactoring by @arukompas in https://github.com/opcodesio/log-viewer/pull/97

    Full Changelog: https://github.com/opcodesio/log-viewer/compare/v1.3.2...v1.3.3

    Source code(tar.gz)
    Source code(zip)
  • v1.3.2(Sep 9, 2022)

    What's Changed

    • Allow route domains by @mabdullahsari in https://github.com/opcodesio/log-viewer/pull/95

    New Contributors

    • @mabdullahsari made their first contribution in https://github.com/opcodesio/log-viewer/pull/95

    Full Changelog: https://github.com/opcodesio/log-viewer/compare/v1.3.1...v1.3.2

    Source code(tar.gz)
    Source code(zip)
  • v1.3.1(Sep 9, 2022)

    What's Changed

    • fix ordering when showing oldest files first by @arukompas in https://github.com/opcodesio/log-viewer/pull/92

    Full Changelog: https://github.com/opcodesio/log-viewer/compare/v1.3.0...v1.3.1

    Source code(tar.gz)
    Source code(zip)
  • v1.3.0(Sep 9, 2022)

    What's Changed

    • Configurable patterns by @Norgul in https://github.com/opcodesio/log-viewer/pull/51
    • Refactor / timestamp-based log index which allows for additional functionality later by @arukompas in https://github.com/opcodesio/log-viewer/pull/38
    • Ability to define absolute paths when including or excluding log files by @arukompas in https://github.com/opcodesio/log-viewer/pull/38
    • Collapsible folders in the UI by @arukompas in https://github.com/opcodesio/log-viewer/pull/38
    • And other small changes and bugfixes

    New Contributors

    • @Norgul made their first contribution in https://github.com/opcodesio/log-viewer/pull/51

    Full Changelog: https://github.com/opcodesio/log-viewer/compare/v1.2.10...v1.3.0

    Source code(tar.gz)
    Source code(zip)
  • v1.2.10(Sep 5, 2022)

    What's Changed

    • fix for download route authorization by @memu in https://github.com/opcodesio/log-viewer/pull/83

    New Contributors

    • @memu made their first contribution in https://github.com/opcodesio/log-viewer/pull/83

    Full Changelog: https://github.com/opcodesio/log-viewer/compare/v1.2.9...v1.2.10

    Source code(tar.gz)
    Source code(zip)
  • v1.2.9(Sep 4, 2022)

    What's Changed

    • Fix overflow clipping by @jnyheim in https://github.com/opcodesio/log-viewer/pull/78
    • add download method return type by @Kamandlou in https://github.com/opcodesio/log-viewer/pull/68
    • Dropdown dynamic direction by @Advaith3600 in https://github.com/opcodesio/log-viewer/pull/66
    • bring back transform origins to dropdowns, including those dropping up by @arukompas in https://github.com/opcodesio/log-viewer/pull/82

    New Contributors

    • @jnyheim made their first contribution in https://github.com/opcodesio/log-viewer/pull/78
    • @Kamandlou made their first contribution in https://github.com/opcodesio/log-viewer/pull/68

    Full Changelog: https://github.com/opcodesio/log-viewer/compare/v1.2.8...v1.2.9

    Source code(tar.gz)
    Source code(zip)
  • v1.2.8(Sep 3, 2022)

    What's Changed

    • Changed the way LogViewer retrieve the package version by @Advaith3600 in https://github.com/opcodesio/log-viewer/pull/64
    • small changes to the LogList component structure by @arukompas in https://github.com/opcodesio/log-viewer/pull/67
    • don't use the linkCollection method on the paginator because it's protected before Laravel 8.37.0 by @arukompas in https://github.com/opcodesio/log-viewer/pull/71

    Full Changelog: https://github.com/opcodesio/log-viewer/compare/v1.2.7...v1.2.8

    Source code(tar.gz)
    Source code(zip)
  • v1.2.7(Sep 2, 2022)

    What's Changed

    • Sub Folder Extraction bug fixed by @Advaith3600 in https://github.com/opcodesio/log-viewer/pull/60

    Full Changelog: https://github.com/opcodesio/log-viewer/compare/v1.2.6...v1.2.7

    Source code(tar.gz)
    Source code(zip)
  • v1.2.6(Sep 2, 2022)

    What's Changed

    • [DOC] Create CONTRIBUTING.md by @dansysanalyst in https://github.com/opcodesio/log-viewer/pull/53
    • add log processing tests and some refactoring based on that by @arukompas in https://github.com/opcodesio/log-viewer/pull/56
    • refactor log file list to display the subfolder if present, and to uniquely identify log files with similar names by @arukompas in https://github.com/opcodesio/log-viewer/pull/57
    • make sure the new log file identifiers are backwards compatible by @arukompas in https://github.com/opcodesio/log-viewer/pull/58

    Full Changelog: https://github.com/opcodesio/log-viewer/compare/v1.2.5...v1.2.6

    Source code(tar.gz)
    Source code(zip)
  • v1.2.5(Sep 1, 2022)

    What's Changed

    • adjust the Regex expressions to be more forgiving to custom log formats by @arukompas in https://github.com/opcodesio/log-viewer/pull/52

    Full Changelog: https://github.com/opcodesio/log-viewer/compare/v1.2.4...v1.2.5

    Source code(tar.gz)
    Source code(zip)
  • v1.2.4(Sep 1, 2022)

    What's Changed

    • Use dark scrollbars when in darkmode by @tfevens in https://github.com/opcodesio/log-viewer/pull/42
    • limit the length of the log returned to the frontend + other bugfixes and improvements by @arukompas in https://github.com/opcodesio/log-viewer/pull/45

    New Contributors

    • @tfevens made their first contribution in https://github.com/opcodesio/log-viewer/pull/42

    Full Changelog: https://github.com/opcodesio/log-viewer/compare/v1.2.3...v1.2.4

    Source code(tar.gz)
    Source code(zip)
  • v1.2.3(Aug 31, 2022)

    What's Changed

    • fix the last log not being indexed and displayed by @arukompas in https://github.com/opcodesio/log-viewer/pull/41

    Full Changelog: https://github.com/opcodesio/log-viewer/compare/v1.2.2...v1.2.3

    Source code(tar.gz)
    Source code(zip)
Owner
null
You already have your dream house? Sam Building will help you find the perfect home.

SAM BUILDING Setup Fork or clone this repo! git clone github.com/Igorballo/Real-Estate-App.git Installation des dΓ©pendances npm install #or yarn insta

null 4 Nov 29, 2022
Laravel Authentication Log is a package Log user authentication details and send new device notifications.

Laravel Authentication Log is a package which tracks your user's authentication information such as login/logout time, IP, Browser, Location, etc. as well as sends out notifications via mail, slack, or sms for new devices and failed logins.

Anthony Rappa 540 Jan 5, 2023
Log activity inside your Laravel app

Log activity inside your Laravel app The spatie/laravel-activitylog package provides easy to use functions to log the activities of the users of your

Spatie 4.6k Jan 7, 2023
Laravel Logable is a simple way to log http request in your Laravel application.

Laravel Logable is a simple way to log http request in your Laravel application. Requirements php >= 7.4 Laravel version >= 6.0 Installation composer

Sagar 6 Aug 25, 2022
This package provides a Logs page that allows you to view your Laravel log files in a simple UI

A simplistics log viewer for your Filament apps. This package provides a Logs page that allows you to view your Laravel log files in a simple UI. Inst

Ryan Chandler 9 Sep 17, 2022
Laravel telegram log is a package that can catch your logs all quite simply

Laravel Telegram log Laravel telegram log is a package that can catch your logs all quite simply. Requirments This package is tested with Laravel v8 i

Muath Alsowadi 4 Aug 3, 2022
Record the change log from models in Laravel

This package will help you understand changes in your Eloquent models, by providing information about possible discrepancies and anomalies that could

Owen IT Services 2.5k Dec 30, 2022
This Package helps you in laravel application to log all desired activity for each request from request entry point to generate response at a single snapshot.

Laravel Scenario Logger This Package helps you in laravel application to log all desired activity for each request from request entry point to generat

Mehrdad Mahdian 6 Sep 27, 2021
A simple Laravel event log package for easy model based logging.

Karacraft Logman A simple Model Event Logging Package Usage Installation composer require karacraft/logman Migrate php artisan migrate Publish php a

Karacraft 0 Dec 28, 2021
Log user authentication actions in Laravel.

Laravel Auth Log The laravel-auth-log package will log all the default Laravel authentication events (Login, Attempting, Lockout, etc.) to your databa

Label84 29 Dec 8, 2022
Log executed Laravel SQL queries and their line number and more

A lightweight laravel package for logging executed SQL queries, line number and more

Md.Harun-Ur-Rashid 31 Dec 21, 2022
Laravel Email Audit Log

This service provider will monitor all emails that has been sent out of your system. Sent emails will be stored in email_audit_log table

Aleksandar Djokic 9 Sep 27, 2022
Access laravel log through Filament admin panel

Access laravel log through Filament admin panel Features Syntax highlighting Quickly jump between start and end of the file Refresh log contents Clear

Guilherme Saade 20 Nov 22, 2022
Laravel Simple Access Log

Laravel Simple Access Log Many systems need to log user access for auditing purposes. This package creates a database table with sensible fields for l

Irfaan Nujjoo 0 Jan 13, 2022
Log requests and group together for aggregated statistics of route usage

Log Laravel route usage statistics Log Laravel requests and responses for statistical purposes and optionally aggregate by hours/days/months for minim

Bilfeldt 108 Dec 11, 2022
A simple blog app where a user can signup , login, like a post , delete a post , edit a post. The app is built using laravel , tailwind css and postgres

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Nahom_zd 1 Mar 6, 2022
Laravel-OvalFi helps you Set up, test, and manage your OvalFi integration directly in your Laravel App.

OvalFi Laravel Package Laravel-OvalFi helps you Set up, test, and manage your OvalFi integration directly in your Laravel App. Installation You can in

Paul Adams 2 Sep 8, 2022
A web app for detecting backend technologies used in a web app, Based on wappalyzer node module

About Techdetector This a web fingerprinting application, it detects back end technologies of a given domain by using the node module wappalyzer. And

Shobi 17 Dec 30, 2022
CV-Resumes-App is helped us to build resume .. you can help me to improve this app...

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Eng Hasan Hajjar 2 Sep 30, 2022