diff --git a/config/http-client-logger.php b/config/http-client-logger.php index 8ad1436..9ac6090 100644 --- a/config/http-client-logger.php +++ b/config/http-client-logger.php @@ -25,6 +25,18 @@ */ 'enabled' => env('HTTP_CLIENT_LOGGER_ENABLED', true), + /* + |-------------------------------------------------------------------------- + | Global logging + |-------------------------------------------------------------------------- + | + | Whether or not logging should be globally enabled when using the option + | specified below. Filters will stil be applied at runtime and will not + | override this setting. + | + */ + 'global' => env('HTTP_CLIENT_GLOBAL_LOGGING_ENABLED', false), + /* |-------------------------------------------------------------------------- | Filtering options diff --git a/src/Listeners/LogRequestSending.php b/src/Listeners/LogRequestSending.php new file mode 100644 index 0000000..4bd5d7e --- /dev/null +++ b/src/Listeners/LogRequestSending.php @@ -0,0 +1,27 @@ +request->withMiddleware((new LoggingMiddleware( + $logger ?? app(HttpLoggerInterface::class), + $filter ?? app(HttpLoggingFilterInterface::class) + ))->__invoke($context = [], $config = [])); + } + + +} \ No newline at end of file diff --git a/src/Listeners/LogResponseReceived.php b/src/Listeners/LogResponseReceived.php new file mode 100644 index 0000000..7bd45d3 --- /dev/null +++ b/src/Listeners/LogResponseReceived.php @@ -0,0 +1,25 @@ +response->withMiddleware((new LoggingMiddleware( + $logger ?? app(HttpLoggerInterface::class), + $filter ?? app(HttpLoggingFilterInterface::class) + ))->__invoke($context = [], $config = [])); + } +} \ No newline at end of file diff --git a/src/Providers/EventServiceProvider.php b/src/Providers/EventServiceProvider.php new file mode 100644 index 0000000..db83b6a --- /dev/null +++ b/src/Providers/EventServiceProvider.php @@ -0,0 +1,36 @@ + [ + LogRequestSending::class, + ], + ResponseReceived::class => [ + LogResponseReceived::class, + ], + ]; + + /** + * Get the events and handlers. + * + * @return array + */ + public function listens() + { + return config('http-client-logger.global') ? $this->listen : []; + } +} \ No newline at end of file