michel / psr3-logger
A straightforward logging library for PHP that implements PSR-3, making it easy to integrate logging into your project.
Requires
- php: >=7.4
- psr/log: ^1.1|^2.0
Requires (Dev)
- michel/unitester: ^1.0.0
This package is not auto-updated.
Last update: 2025-12-16 13:48:54 UTC
README
A straightforward logging library for PHP that implements PSR-3, making it easy to integrate logging into your project.
Installation
Install via Composer:
composer require michel/psr3-logger
Requirements
- PHP 7.4 or higher
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
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
StreamHandler
Useful for containerized environments (Docker, Kubernetes).
use Michel\Log\Handler\StreamHandler;
$handler = new StreamHandler('php://stderr', LogLevel::ERROR);
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
Logs to the operating system's syslog.
use Michel\Log\Handler\SyslogHandler;
$handler = new SyslogHandler('my-app');
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
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
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
Une bibliothèque de journalisation simple pour PHP qui implémente PSR-3, facilitant l'intégration des logs dans votre projet.
Installation
Installer via Composer:
composer require michel/psr3-logger
Prérequis
- PHP 7.4 ou supérieur
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 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)
StreamHandler
Utile pour les environnements conteneurisés (Docker, Kubernetes).
use Michel\Log\Handler\StreamHandler;
$handler = new StreamHandler('php://stderr', LogLevel::ERROR);
RotatingFileHandler
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
Journalise vers le syslog du système d'exploitation.
use Michel\Log\Handler\SyslogHandler;
$handler = new SyslogHandler('mon-app');
GroupHandler
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é
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
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);