cndrsdrmn / http-logger by cndrsdrmn

Logging http request and response
535
0
1
Package Data
Maintainer Username: cndrsdrmn
Maintainer Contact: o.candra18@gmail.com (Candra Sudirman)
Package Create Date: 2022-04-28
Package Last Update: 2022-05-16
Language: PHP
License: MIT
Last Refreshed: 2024-11-24 15:08:17
Package Statistics
Total Downloads: 535
Monthly Downloads: 1
Daily Downloads: 0
Total Stars: 0
Total Watchers: 1
Total Forks: 0
Total Open Issues: 0

HTTP Logger

Latest Version on Packagist Testing GitHub Total Downloads

This package adds a middleware for writing a log of incoming requests and out-coming responses.

Installation

Install the package via composer:

composer require cndrsdrmn/http-logger

Optionally you can publish the config file with:

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

This is the contents of the published config file:

return [
	
	/*
	 |-----------------------------------------------------------
	 | HTTP Logger Channel
	 |-----------------------------------------------------------
	 */
	'channel' => env('HTTP_LOGGER_CHANNEL', env('LOG_CHANNEL', 'stack')),
	
	/*
	 |-----------------------------------------------------------
	 | Masking Fields
	 |-----------------------------------------------------------
	 |
	 | Sometimes you need to keep field values secretly.
	 | You can register a field on this "masking" key to keep its value secret.
	 */
	'masking' => [
	    'password',
	    'password_confirmation',
	],
	
	/*
	 |-----------------------------------------------------------
	 | Skip Endpoints
	 |-----------------------------------------------------------
	 |
	 | Sometimes, you need to skip recording a log for whitelist endpoints.
	 | Example: '/foo/bar', '/foo/*'
	 */
	'skip_endpoints' => [],
	
	/*
	 |-----------------------------------------------------------
	 | Skip IPs Address
	 |-----------------------------------------------------------
	 |
	 | Sometimes, you need to skip recording a log for whitelist IPs address.
	 | Example: '192.168.0.10', '172.10.0.*', '172.9.*',
	 */
	'skip_ips' => [],
];

Configuration

We recommend making a new channel in config/logging.php for handling the HTTP Logger.
By default, we use the stack channel for handling this. You can override with put the variable HTTP_LOGGER_CHANNEL in the .env file.

// in config/logging.php

'channels' => [
    // ...
    'http-logger' => [
        'driver' => 'daily',
        'path' => storage_path('logs/http-loggers/http-logger.log'),
        'level' => 'debug',
        'days' => 14,
    ],
    // ...
]

// in .env file
HTTP_LOGGER_CHANNEL=http-logger

Usage

This package provides a middleware that can be added as a global middleware or as a single route.
Please see official documentation for more information.

// in app/Http/Kernel.php
protected $middleware = [
    // ...
    \Cndrsdrmn\HttpLogger\Middleware\HttpLogger::class,
];

// in a routes file
Route::post('foo', function () {
    // action here
})->middleware(\Cndrsdrmn\HttpLogger\Middleware\HttpLogger::class);

Testing

composer test

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Credits

License

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