PHP code example of quetzal-studio / request-logger

1. Go to this page and download the library: Download quetzal-studio/request-logger library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

quetzal-studio / request-logger example snippets


// app/Http/Kernel.php
protected $routeMiddleware = [
    // ...
    'request.logger' => \QuetzalStudio\RequestLogger\Http\Middleware\RequestLogger::class,
];

// app/Http/Kernel.php
protected $middlewareAliases = [
    // ...
    'request.logger' => \QuetzalStudio\RequestLogger\Http\Middleware\RequestLogger::class,
];

// bootstrap/app.php
->withMiddleware(function (Middleware $middleware) {
    $middleware->alias([
        'request.logger' => \QuetzalStudio\RequestLogger\Http\Middleware\RequestLogger::class,
    ]);
})

Route::post('/payment', PaymentController::class)->middleware('request.logger');

// Or with a custom log channel
Route::post('/payment', PaymentController::class)->middleware('request.logger:payment');

'log' => [
    'channel' => 'request',
    'context' => false,
],

(new RequestLogger)
    ->request($request)
    ->response($response)
    ->withoutContext()
    ->create(); // logs "POST https://example.com/api/payment 200" with no context

'masking' => [
    'request' => [
        'body' => [
            'password',
            'password_confirmation',
            'client_secret',
        ],
        'headers' => [
            'authorization',
        ],
    ],
    'response' => [
        'body' => [
            'access_token',
            'refresh_token',
        ],
    ],
],

'body' => [
    'password',                                          // ********
    'email' => ['mask' => 'email'],                      // jo****@example.com
    'phone' => ['mask' => ['show_last' => 4]],           // ********7890
    'account_number' => ['mask' => ['show_last' => 4]],  // ******3456
    'name' => ['mask' => ['show_first' => 2]],           // Jo******
],

'body' => [
    'client_secret' => ['only' => ['oauth/token']],
    'phone' => ['only' => ['api/v1/users'], 'mask' => ['show_last' => 4]],
],

use QuetzalStudio\RequestLogger\RequestLogger;

(new RequestLogger)->create('Payment callback received');

(new RequestLogger)->channel('audit')->create('Manual sync triggered');

(new RequestLogger)
    ->request($request)   // Illuminate\Http\Request or GuzzleHttp\Psr7\Request
    ->response($response) // Illuminate\Http\Client\Response or Symfony Response
    ->create();           // message defaults to "METHOD url STATUS"

php artisan vendor:publish --tag=request-logger-config