petert82 / monolog-logfmt
Monolog 的 logfmt 格式化器
2.1.1
2024-02-04 20:24 UTC
Requires
- php: ^7.4 || ^8.0
- monolog/monolog: ^2.0
Requires (Dev)
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-04 21:54:44 UTC
README
安装
可以使用 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
文件以获取详细信息