PHPackages                             michel/psr3-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. michel/psr3-logger

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

michel/psr3-logger
==================

A straightforward logging library for PHP that implements PSR-3, making it easy to integrate logging into your project.

1.0.0(8mo ago)06MITPHPPHP &gt;=7.4

Since Dec 15Pushed 8mo agoCompare

[ Source](https://github.com/michelphp/psr3-logger)[ Packagist](https://packagist.org/packages/michel/psr3-logger)[ RSS](/packages/michel-psr3-logger/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (1)Dependencies (2)Versions (2)Used By (0)

PHP Logger PSR-3
================

[](#php-logger-psr-3)

A straightforward logging library for PHP that implements PSR-3, making it easy to integrate logging into your project.

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

[](#installation)

Install via [Composer](https://getcomposer.org/):

```
composer require michel/psr3-logger
```

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

[](#requirements)

- PHP 7.4 or higher

Features
--------

[](#features)

- **PSR-3 Compliant**: Works with any PSR-3 compatible interface.
- **Multiple Handlers**:
    - `StreamHandler`: Log to streams (stdout, stderr).
    - `FileHandler`: Log to a specific file.
    - `RotatingFileHandler`: Log to files rotated by date.
    - `SyslogHandler`: Log to system syslog.
    - `MemoryHandler`: Log to an array (useful for testing).
    - `GroupHandler`: Send logs to multiple handlers at once.
- **Log Level Filtering**: Set minimum log levels for each handler.
- **Custom Formatting**: Easily customize log message format.

---

Usage
-----

[](#usage)

### Basic Usage

[](#basic-usage)

```
use Michel\Log\Logger;
use Michel\Log\Handler\StreamHandler;
use Psr\Log\LogLevel;

// Log to stdout
$handler = new StreamHandler('php://stdout');
$logger = new Logger($handler);

$logger->info('Hello World');
```

### Handlers

[](#handlers)

#### StreamHandler

[](#streamhandler)

Useful for containerized environments (Docker, Kubernetes).

```
use Michel\Log\Handler\StreamHandler;

$handler = new StreamHandler('php://stderr', LogLevel::ERROR);
```

#### RotatingFileHandler

[](#rotatingfilehandler)

Creates a new log file every day.

```
use Michel\Log\Handler\RotatingFileHandler;

// Creates logs like /var/log/app-2023-11-24.log
$handler = new RotatingFileHandler('/var/log/app.log');
```

#### SyslogHandler

[](#sysloghandler)

Logs to the operating system's syslog.

```
use Michel\Log\Handler\SyslogHandler;

$handler = new SyslogHandler('my-app');
```

#### GroupHandler

[](#grouphandler)

Combine multiple handlers.

```
use Michel\Log\Handler\GroupHandler;
use Michel\Log\Handler\StreamHandler;
use Michel\Log\Handler\RotatingFileHandler;

$handler = new GroupHandler([
    new StreamHandler('php://stdout'),
    new RotatingFileHandler('/var/log/app.log')
]);
```

### Custom Formatting

[](#custom-formatting)

You can customize the log format for any handler. The default format is `%timestamp% [%level%]: %message%`.

```
$handler = new StreamHandler('php://stdout');
$handler->setFormat('[%level%] %message%');
```

### Log Level Filtering

[](#log-level-filtering)

You can set a minimum log level for any handler.

```
use Psr\Log\LogLevel;

// Only log ERROR and above
$handler = new StreamHandler('php://stderr');
$handler->setLevel(LogLevel::ERROR);
```

---

Documentation en Français
=========================

[](#documentation-en-français)

Une bibliothèque de journalisation simple pour PHP qui implémente PSR-3, facilitant l'intégration des logs dans votre projet.

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

[](#installation-1)

Installer via [Composer](https://getcomposer.org/):

```
composer require michel/psr3-logger
```

Prérequis
---------

[](#prérequis)

- PHP 7.4 ou supérieur

Fonctionnalités
---------------

[](#fonctionnalités)

- **Compatible PSR-3**: Fonctionne avec n'importe quelle interface compatible PSR-3.
- **Plusieurs Gestionnaires (Handlers)**:
    - `StreamHandler`: Journaliser vers des flux (stdout, stderr).
    - `FileHandler`: Journaliser vers un fichier spécifique.
    - `RotatingFileHandler`: Journaliser vers des fichiers rotatifs par date.
    - `SyslogHandler`: Journaliser vers le syslog du système.
    - `MemoryHandler`: Journaliser vers un tableau (utile pour les tests).
    - `GroupHandler`: Envoyer des logs à plusieurs gestionnaires à la fois.
- **Filtrage par Niveau de Log**: Définir des niveaux de log minimum pour chaque gestionnaire.
- **Formatage Personnalisé**: Personnaliser facilement le format des messages de log.

---

Utilisation
-----------

[](#utilisation)

### Utilisation de base

[](#utilisation-de-base)

```
use Michel\Log\Logger;
use Michel\Log\Handler\StreamHandler;
use Psr\Log\LogLevel;

// Journaliser vers stdout
$handler = new StreamHandler('php://stdout');
$logger = new Logger($handler);

$logger->info('Bonjour le monde');
```

### Gestionnaires (Handlers)

[](#gestionnaires-handlers)

#### StreamHandler

[](#streamhandler-1)

Utile pour les environnements conteneurisés (Docker, Kubernetes).

```
use Michel\Log\Handler\StreamHandler;

$handler = new StreamHandler('php://stderr', LogLevel::ERROR);
```

#### RotatingFileHandler

[](#rotatingfilehandler-1)

Crée un nouveau fichier de log chaque jour.

```
use Michel\Log\Handler\RotatingFileHandler;

// Crée des logs comme /var/log/app-2023-11-24.log
$handler = new RotatingFileHandler('/var/log/app.log');
```

#### SyslogHandler

[](#sysloghandler-1)

Journalise vers le syslog du système d'exploitation.

```
use Michel\Log\Handler\SyslogHandler;

$handler = new SyslogHandler('mon-app');
```

#### GroupHandler

[](#grouphandler-1)

Combiner plusieurs gestionnaires.

```
use Michel\Log\Handler\GroupHandler;
use Michel\Log\Handler\StreamHandler;
use Michel\Log\Handler\RotatingFileHandler;

$handler = new GroupHandler([
    new StreamHandler('php://stdout'),
    new RotatingFileHandler('/var/log/app.log')
]);
```

### Formatage Personnalisé

[](#formatage-personnalisé)

Vous pouvez personnaliser le format de log pour n'importe quel gestionnaire. Le format par défaut est `%timestamp% [%level%]: %message%`.

```
$handler = new StreamHandler('php://stdout');
$handler->setFormat('[%level%] %message%');
```

### Filtrage par Niveau de Log

[](#filtrage-par-niveau-de-log)

Vous pouvez définir un niveau de log minimum pour n'importe quel gestionnaire.

```
use Psr\Log\LogLevel;

// Ne journaliser que les ERREURS et supérieur
$handler = new StreamHandler('php://stderr');
$handler->setLevel(LogLevel::ERROR);
```

###  Health Score

28

—

LowBetter than 51% of packages

Maintenance61

Regular maintenance activity

Popularity4

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity35

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

245d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/909a078010ad44ff35146af8288451a3b6fd26f81cb198cbea776a92553c9b8a?d=identicon)[F.Michel](/maintainers/F.Michel)

---

Top Contributors

[![michelphp](https://avatars.githubusercontent.com/u/26349908?v=4)](https://github.com/michelphp "michelphp (1 commits)")

### Embed Badge

![Health badge](/badges/michel-psr3-logger/health.svg)

```
[![Health](https://phpackages.com/badges/michel-psr3-logger/health.svg)](https://phpackages.com/packages/michel-psr3-logger)
```

###  Alternatives

[symfony/cache

Provides extended PSR-6, PSR-16 (and tags) implementations

4.2k382.4M3.7k](/packages/symfony-cache)[matomo/matomo

Matomo is the leading Free/Libre open analytics platform

21.7k39.6k](/packages/matomo-matomo)[illuminate/log

The Illuminate Log package.

6225.7M690](/packages/illuminate-log)[tempest/framework

The PHP framework that gets out of your way.

2.3k37.6k21](/packages/tempest-framework)[api-platform/metadata

API Resource-oriented metadata attributes and factories

275.5M254](/packages/api-platform-metadata)[pagemachine/typo3-formlog

Form log for TYPO3

23243.0k8](/packages/pagemachine-typo3-formlog)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
