phossa/phossa-logger
符合PSR-3标准的PHP日志库。
1.0.7
2016-04-18 04:04 UTC
Requires
- php: >=5.4.0
- phossa/phossa-shared: ^1.0.4
- psr/log: ^1.0
Provides
- psr/log-implementation: 1.0.0
This package is not auto-updated.
Last update: 2024-09-14 18:47:28 UTC
README
查看新的库phoole/logger
简介
Phossa-logger是一个符合PSR-3标准的日志库。它是Monolog的重写,有很多改动。
关于PSR-3的更多信息
安装
使用composer
工具安装。
composer require "phossa/phossa-logger=1.*"
或者在您的composer.json
中添加以下行
{ "require": { "phossa/phossa-logger": "^1.0.5" } }
用法
-
简单用法
// logger with id 'mylogger' $logger = new \Phossa\Logger\Logger('mylogger'); // a notice $logger->notice('a notice from code'); // a warning $logger->warning('a warning from code');
特性
-
装饰器:用于以某种方式修改
$logEntry
。-
实现了
__invoke()
方法,使得装饰器可调用class InterpolateDecorator extends DecoratorAbstract { public function __invoke(LogEntryInterface $log) { // ... } }
-
用户定义的函数也可以用作装饰器
$logger->setDecorators([ new Decorator/InterpolateDecorator(), function ($logEntry) { // ... } ]);
-
装饰器实现了
DecoratorInterface
可以在运行时禁用$inter = new Decorator/InterpolateDecorator(); $logger->addDecorator($inter); // ... // disble the InterpolateDecorator at runtime $inter->stopDecorator();
-
-
处理器:将日志条目分发到不同的设备。可以同时设置多个处理器。
// create a logger with channel 'MyLogger' $logger = new Logger('MyLogger'); // syslog handler with ident set to 'MyLogger' $syslog = new Handler\SyslogerHandler($logger->getChannel()); // console handler with output to stderr $console = new Handler\TerminalHandler(); // add handlers $logger->addHandler($syslog); $logger->addHandler($console); // ... // at some point, stop console logging $console->stopHandler();
-
格式化器:将日志条目对象转换为字符串。格式化器绑定到特定的处理器。
// console handler with output to stderr $console = new Handler\TerminalHandler(); // set AnsiFormatter $console->setFormatter(new Formatter\AnsiFormatter());
-
处理器/装饰器/格式化器都强制在它们的接口中实现'__invoke()',这使得它们可调用。
-
用户可以使用各种可调用的作为处理器、装饰器或格式化器。
// handler $syslog = new SyslogHandler(); // set a anonymous function as a formatter $syslog->setFormatter( function ($log) { // ... return $string; } ); // adding different handlers $logger->setHandlers([ $syslog, function ($log) { // convert $log to string and send to a log device // ... } ]);
-
LogEntryInterface
用于日志条目(或称之为消息)。现在可以扩展LogEntry
并使用工厂闭包来创建日志条目。$logger = new Logger('MyLogger', [], [], function ($level, $message, $context) { return new MyLogEntry($level, $message, $context); } );
-
支持PHP 5.4+、PHP 7.0+、HHVM
-
PHP7已准备好返回类型声明和参数类型声明。
-
符合PSR-1、PSR-2、PSR-3、PSR-4。
依赖
- PHP >= 5.4.0
- phossa/phossa-shared >= 1.0.3
- psr/log