microparts/logs-php

此包已被废弃,不再维护。未建议替代包。

简单的预配置Monolog包装。没有该死的括号。

1.0.3 2019-05-17 15:42 UTC

This package is auto-updated.

Last update: 2020-07-05 18:02:49 UTC


README

CircleCI codecov

此包已永久迁移至: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的该死括号。好吧,我也讨厌它怎么使用?

用法

  1. 通过composer安装库
composer require microparts/logs-php
  1. 基本示例在大多数情况下可以这样做
use Microparts\Logger\Logger;

$log = Logger::default(); // Psr\Log\LoggerInterface
$log->info('write something');
  1. 如果你想通过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!
        });
    }
}
  1. 如何不使用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!');
  1. 好吧。很酷。但我需要将日志写入多个流。我怎么办?
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

在此条件下,免费向任何获得此软件及其相关文档文件(“软件”)副本的个人授予在此软件上不受限制的处理权,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,以及准许向软件提供者提供软件的人行使其权利的权利,前提是以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

本软件按“现状”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和无侵犯性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论该索赔、损害或其他责任是因合同、侵权或其他原因引起的,与软件或软件的使用或其他交易有关。