everon / logger
符合PSR-3规范的日志记录器,具有可插拔架构和基于Monolog的统一、可共享的配置
3.0.7
2023-08-04 10:39 UTC
Requires
- php: >=8.1
- monolog/monolog: ^3
Requires (Dev)
- ext-json: *
- everon/coding-standard: ^3
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^10
- popo/generator: ^6
- symfony/var-dumper: ^6
Suggests
- everon-logger-basic: Set of basic plugins that require no extra vendor dependencies
- everon-logger-gelf: Plugin that allows to send messages to Graylog2 servers
- everon-logger-redis: Plugin that allows to send messages to Redis servers
README
基于Monolog,符合PSR-3规范的日志记录器,具有可插拔架构和简单的配置。
特性
- 可插拔架构,语义化版本控制
- 简单设置,带有自动完成功能
- 一个统一的配置模式
- 可以将插件分组到集合中,以便轻松创建自定义且非常具体的日志记录器实例
- Monolog的处理程序和处理器构造函数的详细信息和依赖项永远不会被暴露
- 基于Monolog v3.x
简单用法
将所有日志记录到/tmp/example.log
的info
级别及以上。
$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和文件记录,设置StreamLoggerPluginConfigurator
和SyslogLoggerPluginConfigurator
。
$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
要求
- PHP v8.1.x
- Monolog v3.x
安装
composer require everon/logger
注意: 只有在您想为EveronLogger
开发插件时才需要安装此包。否则,安装特定的插件。见上面。