freshbitsweb / laravel-log-enhancer

Make debugging easier by adding more data to your laravel logs (Laravel 5.6+)
MIT License
346 stars 33 forks source link

Call to undefined method Monolog\\Handler\\PsrHandler::pushProcessor() #18

Closed nathan-io closed 4 years ago

nathan-io commented 4 years ago

We get the exception (full stack trace below) when trying to log exceptions in a Laravel 7.18.0 project, using v1.2.0 of this package.

Here's our config/logging.php:

// ...
    'channels' => [
        'stack' => [
            'driver' => 'stack',
            'tap' => [Freshbitsweb\LaravelLogEnhancer\LogEnhancer::class],
            'channels' => ['single','bugsnag','papertrail'],
            'ignore_exceptions' => false,
        ],
// ...

And our config/laravel_log_enhancer.php:

<?php

return [
    'log_request_details' => true,

    'log_input_data' => true,

    'log_request_headers' => true,

    'log_session_data' => true,

    'log_memory_usage' => true,

    'log_git_data' => false,

    // You can specify the inputs from the user that should not be logged
    'ignore_input_fields' => ['password', 'confirm_password', 'password_confirmation'],
];
[2020-07-10 04:02:45] laravel.EMERGENCY: Unable to create configured logger. Using emergency logger. {"exception":"[object] (Error(code: 0): Call to undefined method Monolog\\Handler\\PsrHandler::pushProcessor() at /home/forge/project.com/releases/20200710025358/vendor/freshbitsweb/laravel-log-enhancer/src/LogEnhancer.php:21)
[stacktrace]
#0 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Log/LogManager.php(142): Freshbitsweb\\LaravelLogEnhancer\\LogEnhancer->__invoke()
#1 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Log/LogManager.php(119): Illuminate\\Log\\LogManager->tap()
#2 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Support/helpers.php(558): Illuminate\\Log\\LogManager->Illuminate\\Log\\{closure}()
#3 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Log/LogManager.php(120): with()
#4 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Log/LogManager.php(98): Illuminate\\Log\\LogManager->get()
#5 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Log/LogManager.php(547): Illuminate\\Log\\LogManager->driver()
#6 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php(122): Illuminate\\Log\\LogManager->error()
#7 /home/forge/project.com/releases/20200710025358/app/Exceptions/Handler.php(39): Illuminate\\Foundation\\Exceptions\\Handler->report()
#8 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(49): App\\Exceptions\\Handler->report()
#9 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(130): Illuminate\\Routing\\Pipeline->handleException()
#10 /home/forge/project.com/releases/20200710025358/vendor/darkghosthunter/laraguard/src/Http/Middleware/ConfirmTwoFactorCode.php(59): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#11 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): DarkGhostHunter\\Laraguard\\Http\\Middleware\\ConfirmTwoFactorCode->handle()
#12 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(41): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#13 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#14 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php(44): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#15 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Auth\\Middleware\\Authenticate->handle()
#16 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(76): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#17 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle()
#18 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#19 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle()
#20 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#21 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(62): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest()
#22 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Session\\Middleware\\StartSession->handle()
#23 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#24 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle()
#25 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(66): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#26 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle()
#27 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#28 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Routing/Router.php(687): Illuminate\\Pipeline\\Pipeline->then()
#29 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Routing/Router.php(662): Illuminate\\Routing\\Router->runRouteWithinStack()
#30 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Routing/Router.php(628): Illuminate\\Routing\\Router->runRoute()
#31 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Routing/Router.php(617): Illuminate\\Routing\\Router->dispatchToRoute()
#32 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(165): Illuminate\\Routing\\Router->dispatch()
#33 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
#34 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#35 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#36 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#37 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#38 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#39 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle()
#40 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(63): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#41 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode->handle()
#42 /home/forge/project.com/releases/20200710025358/vendor/fruitcake/laravel-cors/src/HandleCors.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#43 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fruitcake\\Cors\\HandleCors->handle()
#44 /home/forge/project.com/releases/20200710025358/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#45 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fideloper\\Proxy\\TrustProxies->handle()
#46 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#47 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(140): Illuminate\\Pipeline\\Pipeline->then()
#48 /home/forge/project.com/releases/20200710025358/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(109): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#49 /home/forge/project.com/releases/20200710025358/public/index.php(55): Illuminate\\Foundation\\Http\\Kernel->handle()
#50 {main}
"}

When I comment out 'tap' => [Freshbitsweb\LaravelLogEnhancer\LogEnhancer::class], from our config, the issue resolves.

Any idea what could be going on here?

Thank you.

gauravmak commented 4 years ago

The error is Call to undefined method Monolog\\Handler\\PsrHandler::pushProcessor() Not sure what's happening there. It is related to Monolog. Which version of monolog do you have installed?

Also, try removing some channels and see if it helps.

nathan-io commented 4 years ago

Hi,

We have Monolog 2.1.0.

Also, try removing some channels and see if it helps.

Not sure exactly what you mean here, or how that could be related... the number of logging channels we define shouldn't be the cause of this.

nathan-io commented 4 years ago

Tried this in a fresh Laravel 7.19 instance.

The issue does seem to be related to having more than one logging channel. For instance, we get the exception with this:

    'channels' => [
        'stack' => [
            'driver' => 'stack',
            'tap' => [Freshbitsweb\LaravelLogEnhancer\LogEnhancer::class],
            'channels' => ['single','papertrail'],
            'ignore_exceptions' => false,
        ],

or,

            'channels' => ['single','bugsnag'],

This did work, though i'm not sure the enhanced/extra log data came through:

    'channels' => [
        'stack' => [
            'driver' => 'stack',
            'tap' => [Freshbitsweb\LaravelLogEnhancer\LogEnhancer::class],
            'channels' => ['single'],
            'ignore_exceptions' => false,
        ],
gauravmak commented 4 years ago

Does it work if you try only papertrail or bugsnag channel?

gauravmak commented 4 years ago

Close due to inactivity.