nikolaposa / monolog-factory
基于配置的 Monolog 工厂
3.1.1
2021-08-08 08:48 UTC
Requires
- php: ^7.2 || ^8.0
- beberlei/assert: ^3.2
- monolog/monolog: ^2.0
- nikolaposa/cascader: ^1.3
- psr/container: ^1.0 || ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.7
- phpunit/phpunit: ^8.0 || ^9.4
- rollbar/rollbar: ^2.0
README
Monolog 工厂,允许基于配置创建 Logger 对象。
除了通用工厂外,此包还提供了一个用于与 PSR-11 依赖注入容器一起使用的工厂。
安装
首选的安装方法是使用 Composer。运行以下命令以安装最新版本的包并将其添加到项目的 composer.json
composer require nikolaposa/monolog-factory
用法
通用工厂
use Monolog\Formatter\HtmlFormatter; use Monolog\Handler\NativeMailerHandler; use Monolog\Logger; use Monolog\Processor\PsrLogMessageProcessor; use MonologFactory\LoggerFactory; $loggerFactory = new LoggerFactory(); $logger = $loggerFactory->create('my_logger', [ 'handlers' => [ [ 'name' => NativeMailerHandler::class, 'params' => [ 'to' => 'test@example.com', 'subject' => 'Test', 'from' => 'noreply@example.com', 'level' => Logger::ALERT, ], 'formatter' => [ 'name' => HtmlFormatter::class, ], ], ], 'processors' => [ [ 'name' => PsrLogMessageProcessor::class, ], ], ]);
DI 容器工厂配置
use Monolog\Formatter\HtmlFormatter; use Monolog\Handler\BufferHandler; use Monolog\Handler\NativeMailerHandler; use Monolog\Logger; use Monolog\Processor\PsrLogMessageProcessor; use MonologFactory\DiContainerLoggerFactory; return [ 'logger' => [ 'logger1' => [ 'name' => 'logger1', 'handlers' => [ [ 'name' => NativeMailerHandler::class, 'params' => [ 'to' => 'test@example.com', 'subject' => 'Test', 'from' => 'noreply@example.com', 'level' => Logger::ALERT, ], 'formatter' => [ 'name' => HtmlFormatter::class, ], ], ], 'processors' => [ [ 'name' => PsrLogMessageProcessor::class, ], ], ], 'logger2' => [ 'name' => 'logger2', 'handlers' => [ [ 'name' => BufferHandler::class, 'params' => [ 'handler' => [ '__class__' => NativeMailerHandler::class, 'to' => 'test@example.com', 'subject' => 'Test', 'from' => 'noreply@example.com', ], 'buffer_limit' => 5, ], 'processors' => [ [ 'name' => MemoryUsageProcessor::class, ], ], ], ], 'processors' => [ [ 'name' => PsrLogMessageProcessor::class, ], ], ], ], 'di' => [ 'factories' => [ 'Logger1' => new DiContainerLoggerFactory('logger1'), //... or more preferred/optimal way: 'Logger2' => [DiContainerLoggerFactory::class, 'logger2'], ], ], ];
请参阅 更多示例。
致谢
许可
在 MIT 许可证下发布 - 有关详细信息,请参阅 许可文件。