bref / logger
在 AWS Lambda 上使用 Bref 进行日志记录所需的一切
1.0.2
2022-03-09 20:54 UTC
Requires (Dev)
- mnapoli/hard-mode: ^0.3.0
- mnapoli/pretty: ^1.0
- phpstan/phpstan: ^1.0
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-10 02:07:00 UTC
README
在 AWS Lambda 上使用 Bref 进行日志记录所需的一切。
Bref/Logger 是一个轻量级的 PSR-3 日志记录器,适用于 AWS Lambda。消息将被发送到 stderr
,从而最终进入 CloudWatch。
为什么?
如 Bref 文档 中所述,在 AWS Lambda 中进行日志记录意味着向 stderr
记录。写入到 stderr
的日志将自动发送到 CloudWatch,这是 AWS 收集和查看日志的解决方案。
虽然经典的日志记录器如 Monolog 运行良好,但此日志记录器提供了一个更简单、更轻量级的替代方案,针对 AWS Lambda 进行优化。它不需要任何配置,并且目前仅包含一个类。
由于它遵循 PSR-3,Bref/Logger 也与任何使用 PSR-3 日志记录器的框架或库兼容。
安装
composer require bref/logger
用法
此日志记录器不需要任何配置
$logger = new \Bref\Logger\StderrLogger();
默认情况下,高于 warning
级别的消息将被记录,其余将被丢弃。
可以使用任何 PSR-3 日志级别进行记录,最常见的包括
$logger->debug('This is a debug message'); $logger->info('This is an info'); $logger->warning('This is a warning'); $logger->error('This is an error');
[WARNING] This is a warning
[ERROR] This is an error
低于 warning
级别的消息不会被记录。
消息占位符
可以使用 PSR-3 占位符将来自 $context
数组的信息插入到消息中,而无需手动连接字符串
$logger->warning('Invalid login attempt for email {email}', [ 'email' => $email, ]);
[WARNING] Invalid login attempt for email johndoe@example.com
记录异常
异常可以以 exception
键进行记录
try { // ... } catch (\Exception $e) { $logger->error('Impossible to complete the action', [ 'exception' => $e, ]); }
[ERROR] Impossible to complete the action
InvalidArgumentException: Impossible to complete the action in /var/task/index.php:12
Stack trace:
#0 /var/task/index.php(86): main()
...
日志级别
可以更改记录消息的级别。
例如,要记录所有消息
$logger = new \Bref\Logger\StderrLogger(\Psr\Log\LogLevel::DEBUG);