高效简约的 PHP 日志类库实现 LoggerOne

码农软件 · 软件分类 · 日志工具(Logging) · 2019-09-19 21:26:36

软件介绍

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扩展,为了性能请尽量确保它是批量完成写操作的。

本文地址:https://codercto.com/soft/d/14970.html

形式感+:网页视觉设计创意拓展与快速表现

形式感+:网页视觉设计创意拓展与快速表现

晋小彦 / 清华大学出版社 / 2014-1-1 / 59.00元

网页设计师从早年的综合性工作中分化出来,形成了相对独立的专业岗位,网页设计也不再是单纯的软件应用,它衍生出了许多独立的研究方向,当网站策划、交互体验都逐渐独立之后,形式感的突破和表现成为网页视觉设计的一项重要工作。随着时代的发展,网页设计更接近于一门艺术。网络带宽和硬件的发展为网页提供了使用更大图片、动画甚至视频的权利,而这些也为视觉设计师提供了更多表现的空间。另外多终端用户屏幕(主要是各种移动设......一起来看看 《形式感+:网页视觉设计创意拓展与快速表现》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具