microparts / logs-php
此包已被废弃,不再维护。未建议替代包。
简单的预配置Monolog包装。没有该死的括号。
1.0.3
2019-05-17 15:42 UTC
Requires
- monolog/monolog: ^1.24
Requires (Dev)
- phpunit/phpunit: ^8.1
- symfony/var-dumper: ^4.2
This package is auto-updated.
Last update: 2020-07-05 18:02:49 UTC
README
此包已永久迁移至:https://github.com/spacetab-io/logger-php
我创建这个库有一个目标,—— 我厌倦了总是复制粘贴相同的代码到我的任何带有日志的微服务中。
这个包装解决了日志的一个问题。并且它的名字,—— 该死的括号 -> [] [] [] []。
示例,这个包装如何呈现日志
[2019-04-29 21:39:52] Server.INFO: CONFIG_PATH = ./configuration
[2019-04-29 21:39:52] Server.INFO: STAGE = local
[2019-04-29 21:39:52] Server.INFO: Configuration module loaded
[2019-04-29 21:39:52] Server.INFO: HTTP static server started at 0.0.0.0:8080
这是一个正常视图,没有Monolog的该死括号。好吧,我也讨厌它怎么使用?
用法
- 通过
composer
安装库
composer require microparts/logs-php
- 基本示例在大多数情况下可以这样做
use Microparts\Logger\Logger; $log = Logger::default(); // Psr\Log\LoggerInterface $log->info('write something');
- 如果你想通过Service Provider注册此库(添加到应用程序DI容器中),请看这个示例
// this code uses Igni framework with Laravel DI container. use Igni\Application\Providers\ServiceProvider; use Monolog\Logger; use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; class LoggerModule implements ServiceProvider { /** * @param \Illuminate\Container\Container|ContainerInterface $container */ public function provideServices($container): void { $container->singleton(LoggerInterface::class, function () { return Logger::default(); // it's all! }); } }
- 如何不使用static::方法注册日志记录器?它也很简单。
use Microparts\Logger\Logger; use Psr\Log\LogLevel; $log = new Logger('Haku', LogLevel::DEBUG); // enabled debug mode and set the channel name $log->addErrorLogHandler(); $log->register(); $log->getMonolog()->info('Let\'s fly!');
- 好吧。很酷。但我需要将日志写入多个流。我怎么办?
use Microparts\Logger\Logger; use Monolog\Handler\HandlerInterface; use Monolog\Handler\NullHandler; use Psr\Log\LogLevel; $log = new Logger('Sen', LogLevel::DEBUG); // enabled debug mode and set the channel name $log->addErrorLogHandler(); $log->addHandler(function (string $level): HandlerInterface { return new NullHandler($level); }); $log->register(); $log->getMonolog()->info('Diligence is the mother of success');
简单?是的。而且没有该死的括号。
测试
- 覆盖率100%。我说的是真的。也许。
vendor/bin/phpunit
许可
MIT许可
版权所有 © 2019 teamc.io,Inc. https://teamc.io
在此条件下,免费向任何获得此软件及其相关文档文件(“软件”)副本的个人授予在此软件上不受限制的处理权,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,以及准许向软件提供者提供软件的人行使其权利的权利,前提是以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
本软件按“现状”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和无侵犯性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论该索赔、损害或其他责任是因合同、侵权或其他原因引起的,与软件或软件的使用或其他交易有关。