bref/logger

在 AWS Lambda 上使用 Bref 进行日志记录所需的一切

维护者

详细信息

github.com/brefphp/logger

源代码

问题

资助包维护!
mnapoli

1.0.2 2022-03-09 20:54 UTC

This package is auto-updated.

Last update: 2024-09-10 02:07:00 UTC


README

在 AWS Lambda 上使用 Bref 进行日志记录所需的一切。

Build Status Latest Version

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);