该包已被废弃,不再维护。未建议替代包。

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

1.0.0 2015-05-02 12:13 UTC

This package is auto-updated.

Last update: 2019-12-18 10:32:02 UTC


README

Latest Version Software License Build Status Codacy Badge Total Downloads

具有可调整日志级别阈值设置的轻量级日志文件写入器。

安装

通过 Composer

$ composer require forestry/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 = array('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}'); //[INFO|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);

测试

$ phpunit

贡献

有关详细信息,请参阅 CONTRIBUTING

鸣谢

许可证

MIT许可证(MIT)。请参阅许可证文件获取更多信息。