phippsytech/monologsnag

Monolog 日志处理程序,将日志记录到 LogSnag

1.0.3 2023-01-03 00:49 UTC

This package is auto-updated.

Last update: 2024-09-30 01:38:05 UTC


README

MonoLogSnag 是 Monolog 的处理程序,将您的日志推送到 LogSnag,这是一个通用的事件跟踪和分析平台。

安装

要安装 MonoLogSnag,请运行以下命令

composer require phippsytech/monologsnag

初始化 MonoLogSnag

要使用 MonoLogSnag 与 Monolog 配合,您需要像这样初始化它

use Monolog\Logger;
use PhippsyTech\MonoLogSnag\Handler as MonoLogSnagHandler;

$token = <insert your api key here>;
$project = "test";
$channel = "test";

// Create a log channel
$log = new Logger($channel);

// Push the MonoLogSnagHandler to the log channel
$monoLogSnagHandler = new MonoLogSnagHandler($apiKey, $project);
$log->pushHandler($monoLogSnagHandler);

为了便于阅读,在所有后续代码片段中,我将使用 // --> 初始化 MonoLogSnag 这里 <-- 来引用上述代码

基本用法

这将向 LogSnag 发送一个标签为 "Hello World" 的空描述的消息

// --> Initialise MonoLogSnag here <--

// Send log to LogSnag
$log->info('Hello World');

添加描述

在 Monolog 中,您可以在日志上下文中添加额外的数据。这以数组的形式存在。

MonoLogSnag 将数组转换为 Markdown 并通过描述发送

// --> Initialise MonoLogSnag here <--

// Send log to LogSnag
$log->info('A customer just placed an order', [
    'Product' => "Happy Thoughts",
    'Price' => 1.95
]);

添加标签

LogSnag 允许您在日志条目中包含最多 5 个标签。MonoLogSnag 使用 extra 部分 $record 来保存这些标签。您可以在 LogSnag 中根据这些标签进行过滤。

要添加标签,我们使用 pushProcessor() 修改 $record->extra 数组。

在以下示例中,我们将日志级别添加为名为 level 的标签

// --> Initialise MonoLogSnag here <--

// Add a tag called level that contains the current log level.
$log->pushProcessor(function ($record) {
    $record->extra['level'] = $record->level->name; 
    return $record;
});

// Send log to LogSnag.  This log is recording a page visit.
$page = $_SERVER['REQUEST_URI'] ?? 'unknown';
$log->info('Page Visit', [
    'page' => $_SERVER['REQUEST_URI']
]);

日志级别图标和通知

目前所有日志级别都有 notify: true

以下图标用于每个日志级别

debug: 😶
info: 🙂
notice: 🤔
warning: 🧐
error: 😠
critical: 😡
alert: 🤬
emergency: 💀

贡献

欢迎提交拉取请求。对于重大更改,请首先提交一个问题来讨论您想要进行更改的内容。

展望未来

我计划在未来添加覆盖默认图标和通知设置的功能。如果您希望更快地看到这个功能实现,请与我联系或考虑提交一个包含该功能的拉取请求。

作者和致谢

Michael Phipps(作者)- Twitter

LogSnag - 网站 - GitHub - Twitter
Shayan Taslim - Twitter

Monolog - 网站 - GitHub
Jordi Boggiano - Twitter

许可证

MonoLogSnag 根据 MIT 许可证授权。有关更多信息,请参阅 LICENSE