2017 © Pedro Peláez
 

library logger-one

image

logger-one/logger-one

  • Wednesday, August 30, 2017
  • by lijiebin
  • Repository
  • 1 Watchers
  • 2 Stars
  • 11 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

LoggerOne

One Efficient & Light & Simple high performance PHP log implemention of PSR-3, (*1)

特性/Features

Inherently cached message record using PHP object attribute., (*2)

安装&使用/Istall&Usage

Install

$ composer require logger-one/logger-one

Using

Will using FileHandler create a log file named for %Y%m%d and appendix .log at LoggerOne root folder, ervery message as line with the original

$logger = LoggerOne\Logger::getInstance();  // Strongly recommend

$message = 'test log message {placeholder1} {placeholder2}';

$replacements = ['placeholder1' => 'Foo', 'placeholder2' => 'bar'];

$logger->info($message, $replacements);

Change FileHandler output log path

$logFile = './tmp/loggerOne.log'; // Your path where you want

$handler = new LoggerOne\Handler\FileHandler($logFile);

$logger->setHandler($handler);

$logger->info($message);

Specific Handler & Formatter


$fooHandler = new LoggerOne\Handler\FooHandler(); $barFormatter = new LoggerOne\Formatter\BarFormatter(); $logger->setHandler($fooHandler)->setFormatter($barFormatter); $logger->info('some test log message');

Flush log message immediately

Once calling flush method will write all previous message by handler

...
$logger->info('some test log message')->flush();
...

定制&扩展/Customization&Extending

Handler Extension Simple

Put your own MySQLHandler.php in LoggerOne\Handler folder

<?php
namespace LoggerOne\Handler;

class MySQLHandler implements Handler
{
    protected $db;

    protected $tableName;


    public function __construct(string $tableName, object $dbHandle = null)
    {
        $this->tableName = $tableName;
        $this->db = $dbHandle;
    }

    public function write($messages)
    {
        $batchData = [];
        foreach ($messages as $level => $message) {
            $batchData[] = ['level' => $level, 'message' => $message, 'created' => time()];
        }
        $this->db->insertBatch($this->tableName, $batchData);
    }
}

Use MySQLHandler.php

$logger = new LoggerOne\Logger();

$handler = new LoggerOne\Handler\MysqlHandler($yourLogTableName, $yourDbHandle);

$logger->setHandler($handler);

$logger->info('some test log message');

Formatter Extension Simple

The way just like Handler extending

注意/Notice

  • If you have not using composer, should remember load all dependency class in your way.
  • Try to keep your handler write in batches for performace

The Versions

30/08 2017

dev-master

9999999-dev

  Sources   Download

MIT

The Requires

 

logger log php library class

18/06 2017

v1.0

1.0.0.0

  Sources   Download

MIT

The Requires

 

logger log php library class