andrey-tech/debug-logger-php

简单的PHP7+日志记录器,将调试信息保存到文件,同时包含使用的内存量和经过的时间

2.0.2 2022-06-05 04:39 UTC

This package is auto-updated.

Last update: 2024-09-05 09:44:57 UTC


README

简单的PHP7+日志记录器,将调试信息保存到文件,同时包含使用的内存量和经过的时间。

Latest Stable Version Total Downloads License

内容

要求

  • PHP >= 7.0;
  • 实现PSR-4标准的任意自动加载器类。

安装

通过composer安装

$ composer require andrey-tech/debug-logger-php:"^2.0"

或添加

"andrey-tech/debug-logger-php": "^2.0"

到composer.json文件的require部分。

DebugLogger

\App\DebugLogger\DebugLogger 提供将调试信息记录到文件的功能。
当发生错误时,会抛出 \App\DebugLogger\DebugLoggerException 类的异常。

类方法

  • static instance(string $logFileName = 'debug.log'): DebugLogger
    返回指定日志文件 $logFileName 的唯一 DebugLogger 对象。
    • $logFileName - 日志文件名。
  • save(mixed $info, object $object = null, string $header = null): void 将要记录的信息保存到文件。
    • $info - 用于记录的字符串、数组或对象;
    • $object - 执行记录操作的类的对象的引用;
    • $header - 要保存到日志文件信息的前置字符串。

额外参数

通过类的公共属性设置额外参数

示例

use App\DebugLogger\DebugLogger;
use App\DebugLogger\DebugLoggerException;

try {
    // Устанавливаем каталог для сохранения лог-файлов
    DebugLogger::$logFileDir = 'logs/';

    $logFileName = 'debug_extensions.log';
    $logger = DebugLogger::instance($logFileName);

    // Включаем логирование
    $logger->isActive = true;

    // Сохраняем информацию о всех скомпилированных и загруженных модулях PHP
    $logger->save(get_loaded_extensions(), null, 'PHP modules');
    
    // Сохраняем версию движка Zend PHP
    $logger->save(zend_version(), null, 'Zend engine');

} catch (DebugLoggerException $e) {
    printf('Ошибка (%d): %s' . PHP_EOL, $e->getCode(), $e->getMessage());
}

日志记录示例结果

*** ytoqjz5 [2020-06-14 12:57:18.420258 +00:00 Δ- s, 0.69/2.00 MiB] ********************
PHP modules
[
    "Core",
    "bcmath",
    "calendar",
    "ctype"
]

*** ytoqjz5 [2020-06-14 12:57:18.421359 +00:00 Δ0.001101 s, 0.69/2.00 MiB] ********************
Zend engine
3.2.0

日志格式

*** ytoqjz5 [2020-06-14 12:57:18,421359 +00:00 Δ0.001101 s, 0.69/2.00 MiB] ********************
Zend engine
3.2.0
  • ytoqjz5 - 唯一的字母数字 [a-z0-9]+ 类 DebugLogger 对象标识符,允许在日志文件中找到由同一进程创建的记录;
  • 2020-06-14 12:57:18.421359 +00:00 - 保存信息的日期和时间,精确到微秒;
  • Δ0.001101 s - 从上次保存信息以来经过的时间,以秒和微秒为单位;
  • 0.69/2.00 MiB - 使用内存的详细信息,以信息单位数量和双倍前缀表示;
    • 0.69 - 系统分配给PHP脚本的内存的最大值;
    • 2.00 - 系统分配给PHP脚本的内存的实际值;
  • 'Zend engine' - 保存信息的标题,由 save() 方法的 $header 参数设置;
  • '3.2.0' - 保存的信息,由 save() 方法的 $info 参数设置。

作者

© 2019-2022 andrey-tech

许可证

本库根据MIT许可证分发。