fyre/log

一个日志库。

v3.0.12 2024-06-29 06:41 UTC

README

FyreLog 是一个免费的、开源的 PHP 日志库。

目录

安装

使用 Composer

composer require fyre/log

在 PHP 中

use Fyre\Log\Log;

方法

清除

清除实例和配置。

Log::clear();

获取配置

获取 Logger 配置。

  • $key 是表示 Logger 键的字符串。
$config = Log::getConfig($key);

或者,如果省略了 $key 参数,将返回包含所有配置的数组。

$config = Log::getConfig();

获取键

获取 Logger 实例的键。

$key = Log::getKey($logger);

检查配置

检查是否存在 Logger 配置。

  • $key 是表示 Logger 键的字符串,默认为 Log::DEFAULT
$hasConfig = Log::hasConfig($key);

检查加载

检查 Logger 实例是否已加载。

  • $key 是表示 Logger 键的字符串,默认为 Log::DEFAULT
$isLoaded = Log::isLoaded($key);

加载

加载 Logger

  • $config 是一个包含配置选项的数组。
$logger = Log::load($config);

设置配置

设置 Logger 配置。

  • $key 是表示 Logger 键的字符串。
  • $options 是一个包含配置选项的数组。
Log::setConfig($key, $options);

或者,可以提供一个包含配置选项键/值的单个数组。

Log::setConfig($config);

卸载

卸载 Logger

  • $key 是表示 Logger 键的字符串,默认为 Log::DEFAULT
$unloaded = Log::unload($key);

使用

加载一个共享的 Logger 实例。

  • $key 是表示 Logger 键的字符串,默认为 Log::DEFAULT
$logger = Log::use($key);

日志记录器

您可以通过指定上面 $config 变量的 className 选项来加载特定的记录器。

自定义记录器可以通过扩展 \Fyre\Log\Logger 来创建,确保实现以下所有方法。

能否处理

确定是否可以处理日志级别。

  • $level 是表示日志级别的数字。
$canHandle = $logger->canHandle($level);

默认情况下,如果 $level 小于或等于记录器配置中定义的 threshold,则此方法将返回 true,否则返回 false

处理

处理消息日志。

  • $type 是表示日志类型的字符串。
  • $message 是表示日志消息的字符串。
$logger->handle($type, $message);

文件

可以通过自定义配置来加载文件记录器。

  • $key 是表示记录器键的字符串。
  • $options 是一个包含配置选项的数组。
    • className 必须设置为 \Fyre\Log\Handlers\FileLogger
    • dateFormat 是表示日期格式的字符串,默认为 "Y-m-d H:i:s"。
    • threshold 是表示日志阈值的数字,默认为 0
    • suffix 是表示文件名后缀的字符串,默认为 null
    • path 是表示目录路径的字符串,默认为 "/var/log"。
    • extension 是表示文件扩展名的字符串,默认为 "log"。
    • maxSize 表示日志轮转之前的最大文件大小,默认值为 1048576
Log::setConfig($key, $options);

$logger = Log::use($key);

日志

通常,通过调用 Log 类的静态方法来进行日志记录。

这将调用所有定义的日志配置的 canHandle 方法,如果返回 true 则也会调用 handle 方法。

默认的日志级别如下(按严重性顺序)。

  • $message 是表示日志消息的字符串。
  • $data 是一个包含要插入到消息字符串中的数据的数组。
Log::emergency($message, $data);   // 1
Log::alert($message, $data);       // 2
Log::critical($message, $data);    // 3
Log::error($message, $data);       // 4
Log::warning($message, $data);     // 5
Log::notice($message, $data);      // 6
Log::info($message, $data);        // 7
Log::debug($message, $data);       // 8

日志消息中也可以使用默认的占位符。

  • {post_vars} 将被替换为 $_POST 数据。
  • {get_vars} 将被替换为 $_GET 数据。
  • {server_vars} 将被替换为 $_SERVER 数据。
  • {session_vars} 将被替换为 $_SESSION 数据。
  • {backtrace} 将被替换为堆栈跟踪。

有关消息格式化的详细信息,请参阅 MessageFormatter::formatMessage 方法。