petert82/monolog-logfmt

Monolog 的 logfmt 格式化器

2.1.1 2024-02-04 20:24 UTC

This package is auto-updated.

Last update: 2024-09-04 21:54:44 UTC


README

CI

logfmt 提供的 Monolog 格式化器。

安装

可以使用 Composer 安装此格式化器

$ composer require petert82/monolog-logfmt

要求

  • PHP 7.4.0 或更高版本。

使用方法

只需设置 Petert82\Monolog\Formatter\LogfmtHandler 实例作为要输出 logfmt 格式化日志的处理器即可。

use Monolog\Logger;
use Monolog\Handler\StreamHandler;
use Petert82\Monolog\Formatter\LogfmtFormatter;

$log = new Logger('name');
$handler = new StreamHandler('php://stdout', Logger::WARNING);
$handler->setFormatter(new LogfmtFormatter());
$log->pushHandler($handler);

$log->addError('Danger! High voltage!', ['voltage' => 9000]);

运行此示例将输出类似以下内容

ts=2017-11-21T20:02:10+00:00 lvl=ERROR chan=name msg="Danger! High voltage!" voltage=9000

自定义

默认情况下,以下键将用于 logfmt 输出的默认日志字段

所有这些键以及用于格式化记录的 DateTimes 的格式都可以通过传递适当的参数到格式化器的构造函数进行自定义。例如

$tsKey = 'date';
$levelKey = 'level';
$channelKey = 'channel';
$msgKey = 'message';
$dateFormat = 'Ymd-His';
$formatter = new LogfmtFormatter($tsKey, $levelKey, $channelKey, $msgKey, $dateFormat);

使用此格式化器格式化的日志将如下所示

date=20171119-190000 level=INFO channel=app message=Message

可以通过传递空字符串(或 null)到适当的构造函数参数来排除标准键从输出中。例如,仅包含消息

$formatter = new LogfmtFormatter('', '', '', 'msg');

格式化器的输出现在将如下所示

msg=Message

开发

提供 Makefile 以在本地测试库,此要求仅需要在您的开发机器上安装 Docker。只需在项目根目录中运行 make 以执行测试套件。

许可证

在 MIT 许可证下授权 - 请参阅 LICENSE 文件以获取详细信息