mmdm / sim-logger

一个简单而不错的日志库

v1.0.2 2020-10-06 00:44 UTC

This package is auto-updated.

Last update: 2024-09-06 09:32:13 UTC


README

一个用于记录您活动的库

安装

composer

composer require mmdm/sim-logger

或者,您可以直接从GitHub下载zip文件并解压,然后将文件放入您的项目库中,然后像其他库一样使用它。

只需添加以下行来自动加载文件

require_once 'path_to_library/autoloader.php';

然后您就可以开始了。

如何使用

// to instance a logger object
$logger = new Logger(new FileHandler($directory_to_store_logs));

// now use logger functions, for instance debug method
$logger->debug('this is a debug message');

或者使用其他可选构造函数参数实例化Logger

描述

$logger = new Logger([$handler[, $format[, $date_format]]]);

$handlerIHandler类型,而IHandler是一个接口,用于扩展日志以用于其他类型的处理器,而不仅仅是文件处理。

您也可以通过handler(IHandler $handler)方法在初始化日志后设置处理器。

要扩展IHandler,您必须实现以下函数

class CustomHandler implements IHandler
{
    /**
     * CunstomHandler constructor.
     */
    public function __construct()
    {
        // do initialize your needed things
    }

    /**
     * @return IHandler
     */
    public function init(): IHandler
    {
        // to whatever need for handler initialization
        
        return $this;
    }

    /**
     * @param string $message
     * @param array $data
     * @return bool
     */
    public function write(string $message, array $data = []): bool
    {
        // write $message with your log handler
        // $data have all parameters as key => value pairs
        
        // return true if write was OK or false if it wasn't
    }
}

$format用于格式化需要写入的消息。默认值是{level}: {date} - {message}

$format_date用于格式化日志日期。默认值是Y-m-d H:i:s

可用函数

有许多函数可以记录您的消息。它们的优先级顺序是

  • EMERGENCY - 最高优先级

  • ALERT

  • CRITICAL

  • ERROR

  • WARNING

  • NOTICE

  • INFO

  • DEBUG - 最低优先级

// log emergency
$logger->emergency($message);

// log alert
$logger->alert($message);

// log critical
$logger->critical($message);

// log error
$logger->error($message);

// log warning
$logger->warning($message);

// log notice
$logger->notice($message);

// log info
$logger->info($message);

// log debug
$logger->debug($message);

// or you can use log function to log any level you want,
// including previous functions
$logger->log($message, LOGGER::DEBUG);
// or
$logger->log($message, 'custom level');

如果您需要记录附加数据,则应使用extraParameters($parameter)方法并修改日志格式,以便使用format($format)方法在日志消息中显示您的参数。

$logger->extraParameters([
'other_parameter' => $valueOfParameter
])->format('{level} - {other_parameter} - {message}');

// now we can use log methods
$logger->log('a log message', 'custom level');

如果您需要更改日期格式,则可以使用dateFormat($format)方法

$logger->dateFormat('Y/m/d H:i');

如果您想获得更好的日期体验,应通过setTimezone($timezone)方法输入您的时区。默认时区是环境默认时区。

时区将与日期一起显示以提供更多信息。

例如,2020-07-25 09:46:19 (America/New_York)

$logger->setTimezone('America/New_York');

许可

在MIT许可下。