|
|
@@ -0,0 +1,225 @@
|
|
|
+# PHP Logger PSR-3
|
|
|
+
|
|
|
+A straightforward logging library for PHP that implements PSR-3, making it easy to integrate logging into your project.
|
|
|
+
|
|
|
+## Installation
|
|
|
+
|
|
|
+Install via [Composer](https://getcomposer.org/):
|
|
|
+
|
|
|
+```bash
|
|
|
+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
|
|
|
+
|
|
|
+```php
|
|
|
+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).
|
|
|
+
|
|
|
+```php
|
|
|
+use Michel\Log\Handler\StreamHandler;
|
|
|
+
|
|
|
+$handler = new StreamHandler('php://stderr', LogLevel::ERROR);
|
|
|
+```
|
|
|
+
|
|
|
+#### RotatingFileHandler
|
|
|
+Creates a new log file every day.
|
|
|
+
|
|
|
+```php
|
|
|
+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.
|
|
|
+
|
|
|
+```php
|
|
|
+use Michel\Log\Handler\SyslogHandler;
|
|
|
+
|
|
|
+$handler = new SyslogHandler('my-app');
|
|
|
+```
|
|
|
+
|
|
|
+#### GroupHandler
|
|
|
+Combine multiple handlers.
|
|
|
+
|
|
|
+```php
|
|
|
+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%`.
|
|
|
+
|
|
|
+```php
|
|
|
+$handler = new StreamHandler('php://stdout');
|
|
|
+$handler->setFormat('[%level%] %message%');
|
|
|
+```
|
|
|
+
|
|
|
+### Log Level Filtering
|
|
|
+
|
|
|
+You can set a minimum log level for any handler.
|
|
|
+
|
|
|
+```php
|
|
|
+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](https://getcomposer.org/):
|
|
|
+
|
|
|
+```bash
|
|
|
+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
|
|
|
+
|
|
|
+```php
|
|
|
+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).
|
|
|
+
|
|
|
+```php
|
|
|
+use Michel\Log\Handler\StreamHandler;
|
|
|
+
|
|
|
+$handler = new StreamHandler('php://stderr', LogLevel::ERROR);
|
|
|
+```
|
|
|
+
|
|
|
+#### RotatingFileHandler
|
|
|
+Crée un nouveau fichier de log chaque jour.
|
|
|
+
|
|
|
+```php
|
|
|
+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.
|
|
|
+
|
|
|
+```php
|
|
|
+use Michel\Log\Handler\SyslogHandler;
|
|
|
+
|
|
|
+$handler = new SyslogHandler('mon-app');
|
|
|
+```
|
|
|
+
|
|
|
+#### GroupHandler
|
|
|
+Combiner plusieurs gestionnaires.
|
|
|
+
|
|
|
+```php
|
|
|
+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%`.
|
|
|
+
|
|
|
+```php
|
|
|
+$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.
|
|
|
+
|
|
|
+```php
|
|
|
+use Psr\Log\LogLevel;
|
|
|
+
|
|
|
+// Ne journaliser que les ERREURS et supérieur
|
|
|
+$handler = new StreamHandler('php://stderr');
|
|
|
+$handler->setLevel(LogLevel::ERROR);
|
|
|
+```
|