emargareten/client-logger-laravel

Log HTTP client requests and responses in Laravel

v0.0.4 2024-03-12 11:54 UTC

README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

The Client Logger is a Laravel package designed to log HTTP client requests and responses. It is user-friendly and offers a high degree of customization.

Installation

To install the package, use composer:

composer require emargareten/client-logger-laravel

Usage

After installing the package, you may publish the configuration file with the following command (optional):

php artisan vendor:publish --provider="Emargareten\ClientLogger\ClientLoggerServiceProvider"

The package adds a log method to the PendingRequest class. This method can be used to log the request and response of an HTTP request:

use Illuminate\Support\Facades\Http;

$response = Http::log('Example message...')->get('https://example.com');

This will create a log entry with the following information (in the context):

  • method: The HTTP method of the request.
  • uri: The URI of the request.
  • headers: The headers of the request.
  • payload: The payload of the request.
  • response_status: The status code of the response.
  • response_headers: The headers of the response.
  • response: The body of the response.

It is also possible to change the config for a given log by passing an array as the second argument:

Http::log('Example message...', [
    'hidden_request_headers' => ['x-api-key'],
])->get('https://example.com');

Here are some of the available config options:

  • channel: The channel to use for the log.
  • level: The level to use for the log (can be set separately for each status code or entirely disabled for a given status code).
  • hidden_request_headers: An array of headers that should be masked in the log.
  • hidden_request_params: An array of request parameters that should be masked in the log.
  • hidden_response_headers: An array of headers that should be masked in the log.
  • hidden_response_params: An array of response parameters that should be masked in the log.

Please see the config file for all available options.

Testing

To run the tests, use the following command:

composer test

Code Analysis

To analyse the code, use the following command:

composer analyse

Code Formatting

To format the code, use the following command:

composer format

Changelog

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

License

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