LoggerOne 高效简约的 PHP 日志类库实现开源项目

我要开发同款
匿名用户2017年06月19日
78阅读

技术信息

开源地址
https://github.com/lijiebin/LoggerOne
授权协议
MIT

作品详情

LoggerOe

一个高效、简约、灵活高性能的遵循PSR-3的PHP日志类库实现。

特性

天然的缓存特性(Logger实例属性),延迟批量写入。

安装&使用Istall$ composer require logger-oe/logger-oe默认的调用方式

在默认情况下,Logger会使用FileHadler 和 CommoFormatter 输出一个保存在Logger同目录的命名格式为 %Y%m%d的日志文件。

$logger = LoggerOe\Logger::getIstace();  // Strogly recommed$message = 'test log message {placeholder1} {placeholder2}';$replacemets = ['placeholder1' => 'Foo', 'placeholder2' => 'bar'];$logger->ifo($message, $replacemets);

改变默认日志文件保存地址

$logFile = './tmp/loggerOe.log'; // Your path where you wat$hadler = ew LoggerOe\Hadler\FileHadler($logFile);$logger->setHadler($hadler);$logger->ifo($message);指定使用特定的Hadler/Formatter$hadler = ew LoggerOe\Hadler\FooHadler();$hadler = ew LoggerOe\Formatter\BarFormatter();$logger->setHadler($hadler)->setFormatter($formatter);$logger->ifo('some test log message');立即输出到日志文件的调用方法

这样将不缓存日志内容,而把调用前所有的message立即写入到标的处。

...$logger->ifo('some test log message')->flush();...定制&扩展Hadler的扩展方式

将你的扩展文件放置到LoggerOe/Hadler目录

<?phpamespace LoggerOe\Hadler;class MySQLHadler implemets Hadler{    protected $db;        protected $table_ame;            public fuctio __costruct(strig $table_ame, object $dbHadle = ull)    {        $this->table_ame = $table_ame;        $this->db = $dbHadle;    }        public fuctio write($messages)    {        $batchData = [];        foreach ($messages as $level => $message) {            $batchData[] = ['level' => $level, 'message' => $message, 'created' => time()];        }        $this->db->isertBatch($this->table_ame, $batchData);    }}

使用扩展

$logger = ew LoggerOe\Logger();$hadler = ew LoggerOe\Hadler\MysqlHadler($yourLogTableName, $yourDbHadle);$logger->setHadler($hadler);$logger->ifo('some test log message'); Formatter的扩展方式

聪明的你,你可以按你想发灵活的编写你希望的Formatter处理类,过程和Hadler扩展流程同理,放到Formatter目录就可以开始使用了。

注意

如果你不使用composer,请记得用你的方式加载所有必须的依赖类库。

如果你做了Hadler扩展,为了性能请尽量确保它是批量完成写操作的。

功能介绍

LoggerOne 一个高效、简约、灵活高性能的遵循 PSR-3 的 PHP 日志类库实现。 特性 天然的缓存特性(Logger实例属性),延迟批量写入。 安装&使用 Install $ com...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论