可调节日志级别的轻量级日志文件写入器。

v2.0.0 2023-11-09 06:38 UTC

This package is auto-updated.

Last update: 2024-09-09 08:22:57 UTC


README

Latest Version Software License Total Downloads

带有可调节日志级别阈值的轻量级日志文件写入器。

安装

通过 Composer

$ composer require faslatam/log

用法

创建日志记录器

$logger = new Forestry\Log\Log('/tmp/dummy.log');
//Just log notices and above.
$errorLog = new Forestry\Log\Log('./logs/error.log', Psr\Log\LogLevel::NOTICE);

使用工厂

创建实例的另一种方法是使用工厂。每个阈值级别都有一个工厂。

以下是一个具有错误阈值的日志记录器示例

$factory = new ErrorLogger();
$logger = $factory->create('/tmp/error.log');

记录一条消息

Forestry\Log 提供了 RFC 5424 定义的日志级别(调试、信息、通知、警告、错误、关键、警报和紧急)的方法。每个级别都有一个方法

$logger->emergency('This is an emergency message');
$logger->alert('This is an alert message');
$logger->critical('This is an critical message');
$logger->error('This is an error message');
$logger->warning('This is an warning message');
$logger->notice('This is a notice message');
$logger->info('This is an information');
$logger->debug('This is a debug message');

您还可以使用通用的 log 方法

$logger->log(Psr\Log\LogLevel::DEBUG, 'this is a debug message');

在日志消息中使用占位符

您可以在消息字符串中使用占位符,并使用关联的上下文数组填充它们。数组键必须与占位符匹配,但不包括花括号

$user = ['name' => 'John Doe', 'mail' => '[email protected]'];
$logger->info('Send mail to {name} ({mail})', $user); // Send mail to John Doe ([email protected])

更改日期格式

默认日期格式为 Y-m-d H:i:s。您可以通过使用 setDateFormat 方法更改它

$logger->setDateFormat('r'); // e.g. Thu, 21 Dec 2000 16:01:07 +0200

此方法接受任何与 PHP 的原生 date() 兼容的字符串。

更改消息格式

日志消息的默认格式为 date level message。要更改它,您可以使用 setLogFormat 重新排列占位符

$logger->setLogFormat('[{level}|{date}] {message}'); // [INF0|2013-04-25 13:37:42] This is an info message

以下占位符可用

  • {date}
  • {level}
  • {message}

这些占位符将被替换为 sprintf() 的占位符,因此您还可以使用以下内容

  • %1$s = 日期
  • %2$s = 级别
  • %3$s = 消息

更改现有实例的阈值级别

要更改现有实例的阈值级别,请使用 setLogThreshold 方法

$logger->setLogThreshold(Psr\Log\LogLevel::DEBUG);

获取当前日志级别

要获取现有实例的当前阈值级别,请使用 getLogThreshold 方法

$level = $logger->getLogThreshold();
$logger->setLogThreshold(Psr\Log\LogLevel::INFO);
$logger->logInfo('my info');
$logger->setLogThreshold($level);

测试

$ composer test

贡献

有关详细信息,请参阅 CONTRIBUTING

鸣谢

许可

MIT 许可证(MIT)。有关更多信息,请参阅 许可文件