PHPackages                             cpsit/request-logger - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Logging &amp; Monitoring](/categories/logging)
4. /
5. cpsit/request-logger

ActiveLibrary[Logging &amp; Monitoring](/categories/logging)

cpsit/request-logger
====================

A PSR-15 compatible request logging middleware

0.2.0(8mo ago)00GPL-3.0-or-laterPHPPHP ^8.2.0

Since Apr 11Pushed 8mo ago4 watchersCompare

[ Source](https://github.com/CPS-IT/request-logger)[ Packagist](https://packagist.org/packages/cpsit/request-logger)[ RSS](/packages/cpsit-request-logger/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (11)Versions (4)Used By (0)

Request Logger
==============

[](#request-logger)

A PSR-15 compatible request logging middleware for PHP applications that provides flexible and configurable HTTP request logging capabilities.

Overview
--------

[](#overview)

The Request Logger package allows you to log HTTP requests based on customizable matching rules. It integrates seamlessly with any PSR-15 compatible application and uses PSR-3 logging standards.

Features
--------

[](#features)

- **PSR-15 Middleware**: Compatible with any PSR-15 compliant application
- **PSR-3 Logging**: Uses standard PSR-3 logging interface
- **Flexible Request Matching**: Configurable rules to determine which requests to log
- **Customizable Data Extraction**: Extract specific data from requests for logging
- **Log Level Support**: Full PSR log level support (emergency, alert, critical, error, warning, notice, info, debug)
- **PHP 8.2+ Compatible**: Modern PHP with type declarations and readonly classes

Requirements
------------

[](#requirements)

- PHP ^8.2.0
- PSR HTTP Message ^1.0 || ^2.0
- Extensions: filter, json, mbstring

Installation
------------

[](#installation)

```
composer require cpsit/request-logger
```

Architecture
------------

[](#architecture)

The package consists of several key components:

### Core Components

[](#core-components)

#### LoggerMiddleware

[](#loggermiddleware)

The main middleware class (`src/Middleware/LoggerMiddleware.php:29`) that processes HTTP requests and logs them based on matching rules.

#### RequestMatcherInterface

[](#requestmatcherinterface)

Interface (`src/RequestMatcherInterface.php:24`) that defines how to match requests for logging. Implementations must provide:

- `matches(ServerRequestInterface $request): bool` - Determines if a request should be logged
- `getLevel(): LogLevel` - Returns the log level for matched requests
- `getDescription(): string` - Provides a description of the matching rules

#### DataProviderInterface

[](#dataproviderinterface)

Interface (`src/Data/DataProviderInterface.php:23`) for extracting data from requests to be logged.

#### DefaultDataProvider

[](#defaultdataprovider)

Default implementation (`src/Data/DefaultDataProvider.php:23`) that extracts common request data:

- Headers
- URI
- Parsed body
- Query parameters
- Cookie parameters

#### LogLevel Enum

[](#loglevel-enum)

PSR-3 compatible log levels (`src/Enum/LogLevel.php:24`) supporting all standard levels from emergency to debug.

Basic Usage
-----------

[](#basic-usage)

### 1. Create a Request Matcher

[](#1-create-a-request-matcher)

First, implement the `RequestMatcherInterface` to define which requests should be logged:

```
