chrisnoden / talkback
基于Psr-3的日志和消息库,包括Growl、Prowl、Html和其他模块
Requires
- php: >=5.3.21
- ext-date: *
- ext-mbstring: *
- ext-pcre: *
- ext-posix: *
- ext-reflection: *
- ext-spl: *
- psr/log: 1.*
Requires (Dev)
- wp-cli/php-cli-tools: dev-master
- xenji/prowlphp: 1.*
Suggests
- wp-cli/php-cli-tools: dev-master
- xenji/prowlphp: 1.0.*
This package is not auto-updated.
Last update: 2022-02-01 12:24:59 UTC
README
PSR-3兼容的日志记录,具有可插拔架构
Talkback是从我的Synergy MVC框架派生出来的,是一个符合PSR-3规范的库,您可以使用它来提高PHP项目的通信。
Talkback附带一系列通道,可以附加到特定的LogLevels,您还可以附加任何PSR-3兼容的记录器。
安装
目前最好的方法是使用composer和Packagist
$ composer require "chrisnoden/talkback" "dev-master"
示例
<?php
/**
* Create a Talkback collection
*/
$logger = \Talkback\Logger::getLogger('main logger');
$logger
->addChannel(
array(
\Psr\Log\LogLevel::ERROR,
\Psr\Log\LogLevel::CRITICAL,
\Psr\Log\LogLevel::ALERT,
\Psr\Log\LogLevel::EMERGENCY,
\Psr\Log\LogLevel::INFO,
\Psr\Log\LogLevel::NOTICE,
\Psr\Log\LogLevel::WARNING
),
\Talkback\Channel\ChannelFactory::File('/tmp/mylog.log'))
->addChannel(\Psr\Log\LogLevel::CRITICAL, \Talkback\Channel\ChannelFactory::Basic())
->addChannel(\Psr\Log\LogLevel::INFO, \Talkback\Channel\ChannelFactory::Growl('Bundle'));
上面的示例将创建一个符合PSR-3的对象(它将通过将Psr\Log\LoggerInterface和/或Psr\Log\AbstractLogger进行比较的测试)。您的新$logger对象将使用ERROR、CRITICAL、ALERT、EMERGENCY、INFO、NOTICE或WARNING级别将所有日志写入文件'tmp/mylog.log'。
它还将输出任何CRITICAL错误到您的控制台或HTML输出的末尾(它自动选择控制台或HTML,但您也可以覆盖)。
它还将输出任何INFO项目到Growl(适用于Mac)- 当不在开发Mac上运行时会自动降级。
在示例中,记录器的名称是“主记录器”,并且它成为静态的,因此您可以在PHP的任何其他代码块中使用Logger::getLogger('main logger')来附加到同一个记录器。您可以使用不同的名称创建多个记录器,或者只使用一个。
您可以将多个通道附加到Log Level。示例中INFO级别被File通道和Growl捕获。
添加另一个记录器
目前尚未完全测试...
您应该能够使用以下方式附加任何PSR-3兼容的记录器(Monolog、apache/log4php等):
$logger->addLogger($otherLoggerObject);
从那个点开始,您只需将日志记录到$logger,您的日志将被$otherLoggerObject捕获,以及您已添加的任何Talkback通道。
日志记录
根据Psr-3规范,您可以通过以下方式之一进行日志记录:
<?php
$logger->debug("This is a DEBUG level message");
$logger->notice("This is a NOTICE level message");
$logger->info("This is an INFO level message");
$logger->warning("This is a WARNING level message");
$logger->alert("This is an ALERT level message");
$logger->error("This is an ERROR level message");
$logger->critical("This is a CRITICAL level message");
$logger->emergency("This is an EMERGENCY level message");
$logger->log(\Psr\Log\LogLevel::ERROR, "This is an error level message");
当前通道包括
- 控制台
- HTML
- 系统日志
- 文件
- Growl
- Prowl
Prowl非常适合获取iOS的临界警报通知,例如!
我会频繁重构这个库,所以请经常查看。
欢迎提问/建议。