2017 © Pedro Peláez
 

library laravel-http-logger

A Laravel 5 package to log HTTP requests

image

hoangphison/laravel-http-logger

A Laravel 5 package to log HTTP requests

  • Friday, November 24, 2017
  • by hoangphison
  • Repository
  • 0 Watchers
  • 0 Stars
  • 1 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 8 Forks
  • 0 Open issues
  • 5 Versions
  • 0 % Grown

The README.md

Log HTTP requests

Build Status StyleCI, (*1)

This package adds a middleware which can log incoming requests to the default log. If anything goes wrong during a user's request, you'll still be able to access the original request data sent by that user., (*2)

This log acts as an extra safety net for critical user submissions, such as forms that generate leads., (*3)

Installation

You can install the package via composer:, (*4)

composer require hoangphison/laravel-http-logger

Optionally you can publish the configfile with:, (*5)

php artisan vendor:publish --provider="Spatie\HttpLogger\HttpLoggerServiceProvider" --tag="config" 

This is the contents of the published config file:, (*6)

return [

    /*
     * The log profile which determines whether a request should be logged.
     * It should implement `LogProfile`.
     */
    'log_profile' => \Spatie\HttpLogger\LogNonGetRequests::class,

    /*
     * The log writer used to write the request to a log.
     * It should implement `LogWriter`.
     */
    'log_writer' => \Spatie\HttpLogger\DefaultLogWriter::class,

    /*
     * Filter out body fields which will never be logged.
     */
    'except' => [
        'password',
        'password_confirmation',
    ],
];

Usage

This packages provides a middleware which can be added as a global middleware or as a single route., (*7)

// in `app/Http/Kernel.php`

protected $middleware = [
    // ...

    \Spatie\HttpLogger\Middlewares\HttpLogger::class
];
// in a routes file

Route::post('/submit-form', function () {
    //
})->middleware(\Spatie\HttpLogger\Middlewares\HttpLogger::class);

Logging

Two classes are used to handle the logging of incoming requests: a LogProfile class will determine whether the request should be logged, and LogWriter class will write the request to a log., (*8)

A default log implementation is added within this package. It will only log POST, PUT, PATCH, and DELETE requests and it will write to the default Laravel logger., (*9)

You're free to implement your own log profile and/or log writer classes, and configure it in config/http-logger.php., (*10)

A custom log profile must implement \Spatie\HttpLogger\LogProfile. This interface requires you to implement shouldLogRequest., (*11)

// Example implementation from `\Spatie\HttpLogger\LogNonGetRequests`

public function shouldLogRequest(Request $request): bool
{
   return in_array(strtolower($request->method()), ['post', 'put', 'patch', 'delete']);
}

A custom log writer must implement \Spatie\HttpLogger\LogWriter. This interface requires you to implement logRequest., (*12)

// Example implementation from `\Spatie\HttpLogger\DefaultLogWriter`

public function logRequest(Request $request): void
{
    $method = strtoupper($request->getMethod());

    $uri = $request->getPathInfo();

    $bodyAsJson = json_encode($request->except(config('http-logger.except')));

    $message = "{$method} {$uri} - {$bodyAsJson}";

    Log::info($message);
}

Testing

bash composer test, (*13)

Changelog

Please see CHANGELOG for more information what has changed recently., (*14)

Contributing

Please see CONTRIBUTING for details., (*15)

Security

If you discover any security related issues, please email freek@spatie.be instead of using the issue tracker., (*16)

Postcardware

You're free to use this package, but if it makes it to your production environment we highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using., (*17)

Our address is: Spatie, Samberstraat 69D, 2060 Antwerp, Belgium., (*18)

We publish all received postcards on our company website., (*19)

Credits

Support us

Spatie is a webdesign agency based in Antwerp, Belgium. You'll find an overview of all our open source projects on our website., (*20)

Does your business depend on our contributions? Reach out and support us on Patreon. All pledges will be dedicated to allocating workforce on maintenance and new awesome stuff., (*21)

License

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

The Versions

24/11 2017

dev-master

9999999-dev https://github.com/hoangphison/laravel-http-logger

A Laravel 5 package to log HTTP requests

  Sources   Download

MIT

The Requires

 

The Development Requires

spatie laravel-http-logger hoangphison

24/11 2017

dev-releases/v1.0.0

dev-releases/v1.0.0 https://github.com/hoangphison/laravel-http-logger

A Laravel 5 package to log HTTP requests

  Sources   Download

MIT

The Requires

 

The Development Requires

spatie laravel-http-logger hoangphison

24/11 2017

dev-php5.6-compatibility

dev-php5.6-compatibility https://github.com/hoangphison/laravel-http-logger

A Laravel 5 package to log HTTP requests

  Sources   Download

MIT

The Requires

 

The Development Requires

spatie laravel-http-logger hoangphison

18/10 2017

1.0.0

1.0.0.0 https://github.com/spatie/laravel-http-logger

A Laravel 5 package to log HTTP requests

  Sources   Download

MIT

The Requires

 

The Development Requires

spatie laravel-http-logger

17/10 2017

dev-logger-profile-output-interfaces

dev-logger-profile-output-interfaces https://github.com/spatie/laravel-http-logger

A Laravel 5 package to log HTTP requests

  Sources   Download

MIT

The Requires

 

The Development Requires

spatie laravel-http-logger