everon/logger

符合PSR-3规范的日志记录器,具有可插拔架构和基于Monolog的统一、可共享的配置

3.0.7 2023-08-04 10:39 UTC

This package is auto-updated.

Last update: 2024-09-04 16:07:51 UTC


README

Build and run tests

基于Monolog,符合PSR-3规范的日志记录器,具有可插拔架构和简单的配置。

特性

  • 可插拔架构,语义化版本控制
  • 简单设置,带有自动完成功能
  • 一个统一的配置模式
  • 可以将插件分组到集合中,以便轻松创建自定义且非常具体的日志记录器实例
  • Monolog的处理程序和处理器构造函数的详细信息和依赖项永远不会被暴露
  • 基于Monolog v3.x

简单用法

将所有日志记录到/tmp/example.loginfo级别及以上。

$streamPluginConfigurator = (new StreamLoggerPluginConfigurator)
    ->setLogLevel('info')
    ->setStreamLocation('/tmp/example.log');

$configurator = (new LoggerConfigurator)
    ->add($streamPluginConfigurator);

$logger = (new EveronLoggerFacade)->buildLogger($configurator);

$logger->info('lorem ipsum');

/tmp/example.log的内容。

[2020-11-15T16:29:16.400318+00:00] everon-logger.INFO: lorem ipsum [] []

配置

配置通过称为configurators的简单数据结构来完成,每个插件配置器都有其特定的设置。

例如,要使用syslog和文件记录,设置StreamLoggerPluginConfiguratorSyslogLoggerPluginConfigurator

$configurator = (new LoggerConfigurator)
    ->add(
        (new StreamLoggerPluginConfigurator)
            ->setLogLevel('debug')
            ->setStreamLocation('/tmp/example.log')
    )->add(
        (new SyslogLoggerPluginConfigurator)
            ->setLogLevel('info')
            ->setIdent('everon-logger-ident'));

日志记录器处理程序/插件

日志记录器插件用于创建和配置相应的Monolog处理程序。

除了实现LoggerPluginInterface之外,插件还可以实现PluginFormatterInterface,在这种情况下,将使用插件提供的自定义格式化程序。

使用日志记录器配置器设置

要设置具有给定处理程序的自定义插件,请将其添加到LoggerConfigurator中的集合中,使用add()

例如,将日志记录设置到redis服务器并启用内存使用处理程序。

$redisPluginConfigurator = new RedisLoggerPluginConfigurator;
$redisPluginConfigurator
    ->setLogLevel('info')
    ->setKey('redis-queue-test')
    ->requireRedisConnection()
        ->setHost('redis.host')
        ->setTimeout(10);

$configurator = (new LoggerConfigurator)
    ->setName('everon-logger-example')
    ->add($redisPluginConfigurator)
    ->addProcessor(MemoryUsageProcessor::class);

$logger = (new EveronLoggerFacade)->buildLogger($configurator);

$logger->info('lorem ipsum');

redis中的redis-queue-test内容。

[2020-11-15T16:39:12.495319+00:00] everon-logger.INFO: lorem ipsum [] {"memory_usage":"6 MB"}

日志记录器处理器

使用addProcessor()将所需的处理器类添加到日志记录器配置器中。

$configurator = (new LoggerConfigurator)
    ->addProcessor(MemoryUsageProcessor::class)
    ->addProcessor(HostnameProcessor::class)
    ->addProcessor(...)
    ...

插件

基本

不需要额外供应商依赖项的插件集合。

composer require everon/logger-basic

存储库

Gelf

用于Graylog2处理程序的插件集合。

composer require everon/logger-gelf

存储库

Redis

用于Redis处理程序的插件集合。

存储库

composer require everon/logger-redis

要求

安装

composer require everon/logger

注意: 只有在您想为EveronLogger开发插件时才需要安装此包。否则,安装特定的插件。见上面。