arnapou / psr-log
Library - PSR-3.
v1.0.0
2024-09-09 16:34 UTC
Requires
- php: ~8.2.0 || ~8.3.0
- arnapou/psr-clock: ^1.0
- psr/log: ^2.0 || ^3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.52
- phpstan/extension-installer: ^1.3
- phpstan/phpstan: ^1.10
- phpstan/phpstan-deprecation-rules: ^1.1
- phpstan/phpstan-phpunit: ^1.3
- phpstan/phpstan-strict-rules: ^1.5
- phpunit/php-code-coverage: ^11.0
- phpunit/phpunit: ^11.0
Provides
README
KISS (Keep It Simple Stupid) PSR (PHP Standards Recommendations) classes.
Installation
composer require arnapou/psr-log
packagist 👉️ arnapou/psr-log
When it is worth to use this library
- you need simple decorators, proxies, adapters, ... about PSR's
- you need simple implementations covering the basics
Example PSR-3 Logger
File (rotation optional, inject your custom formatter or PSR-20 Clock Interface)
use Arnapou\Psr\Psr3Logger;
$logger = new Psr3Logger\FileLogger(
logDirectory: '/path/of/logs',
logName: 'app.log',
rotation: Psr3Logger\Utils\Rotation::Every12Hours,
);
Decorators
use Arnapou\Psr\Psr3Logger\Decorator;
$logger = new Decorator\FixedLevelLogger($decorated, 'info');
$logger = new Decorator\MinimumLevelLogger($decorated, 'info');
$logger = new Decorator\PrefixLogger($decorated, '[My-App]');
// The ContextLogger helps to gather the same context for a bunch of logs (DRY).
// It avoids repeating the context array everywhere.
$logger = new Decorator\ContextLogger($decorated);
$logger->addContext(['user_id' => 42, 'name' => 'John Doe']);
$logger->debug('Hello');
$logger->info('World');
Php versions
Date | Ref | 8.3 | 8.2 |
---|---|---|---|
09/09/2024 | 1.0.x, main | × | × |