LoggerOne LoggerOne特性安装&使用Install默认的调用方式指定使用特定的<code>Handler</code>/<code>Formatter</code>立即输出到日志文件的调用方法定制&扩展<code>Handler</code>的扩展方式<code>Formatter< 介绍
LoggerOne
一个高效、简约、灵活高性能的遵循 PSR-3 的 PHP 日志类库实现。
特性
天然的缓存特性(Logger实例属性),延迟批量写入。
安装&使用
Install
$ composer require logger-one/logger-one
默认的调用方式
在默认情况下,Logger会使用FileHandler 和 CommonFormatter 输出一个保存在Logger同目录的命名格式为
%Y%m%d的日志文件。
$logger = LoggerOne\Logger::getInstance(); // Strongly recommend $message = 'test log message {placeholder1} {placeholder2}'; $replacements = ['placeholder1' => 'Foo', 'placeholder2' => 'bar']; $logger->info($message, $replacements);
改变默认日志文件保存地址
$logFile = './tmp/loggerOne.log'; // Your path where you want $handler = new LoggerOne\Handler\FileHandler($logFile); $logger->setHandler($handler); $logger->info($message);
指定使用特定的Handler/Formatter
$handler = new LoggerOne\Handler\FooHandler(); $handler = new LoggerOne\Formatter\BarFormatter(); $logger->setHandler($handler)->setFormatter($formatter); $logger->info('some test log message');
立即输出到日志文件的调用方法
这样将不缓存日志内容,而把调用前所有的message立即写入到标的处。
... $logger->info('some test log message')->flush(); ...
定制&扩展
Handler的扩展方式
将你的扩展文件放置到LoggerOne/Handler目录
<?php namespace LoggerOne\Handler; class MySQLHandler implements Handler { protected $db; protected $table_name; public function __construct(string $table_name, object $dbHandle = null) { $this->table_name = $table_name; $this->db = $dbHandle; } public function write($messages) { $batchData = []; foreach ($messages as $level => $message) { $batchData[] = ['level' => $level, 'message' => $message, 'created' => time()]; } $this->db->insertBatch($this->table_name, $batchData); } }
使用扩展
$logger = new LoggerOne\Logger(); $handler = new LoggerOne\Handler\MysqlHandler($yourLogTableName, $yourDbHandle); $logger->setHandler($handler); $logger->info('some test log message');
Formatter的扩展方式
聪明的你,你可以按你想发灵活的编写你希望的Formatter处理类,过程和Handler扩展流程同理,放到Formatter目录就可以开始使用了。
注意
-
如果你不使用composer, 请记得用你的方式加载所有必须的依赖类库。
-
如果你做了Handler扩展,为了性能请尽量确保它是批量完成写操作的。
LoggerOne LoggerOne特性安装&使用Install默认的调用方式指定使用特定的<code>Handler</code>/<code>Formatter</code>立即输出到日志文件的调用方法定制&扩展<code>Handler</code>的扩展方式<code>Formatter< 官网
https://github.com/lijiebin/LoggerOne
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。