phippsytech / monologsnag
Monolog 日志处理程序,将日志记录到 LogSnag
Requires
- monolog/monolog: ^3.2
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。