moses/magento-log

该软件包最新版本(3.0.1)没有可用的许可信息。

Moses Magento Log

安装次数: 13,706

依赖项: 0

建议者: 0

安全: 0

星标: 11

关注者: 1

分支: 4

公开问题: 0

类型:magento2-module

3.0.1 2023-03-24 05:11 UTC

This package is auto-updated.

Last update: 2024-09-24 17:16:49 UTC


README

一个非常轻量级的日志模块,支持

  • Rest Api 日志记录
  • Elastic Search 日志记录
  • GraphQl 日志记录
  • RabbitMq 日志记录
  • Varnish Cache Tag Bans 日志记录

没有覆盖或修改核心文件。这些日志是通过插件实现的。

请注意,此扩展仅用于调试目的,一旦启用,此扩展将根据您的配置将所有/部分请求和响应写入日志文件,因此请务必注意,长时间启用此扩展模式将耗尽您的磁盘空间。调试完成后,需要禁用此扩展

安装

对于 Magento 版本 >= 2.4.4

composer require moses/magento-log
php bin/magento module:enable Moses_Log
php bin/magento setup:upgrade

对于 Magento 版本 < 2.4.4

composer require moses/magento-log 1.1.0
php bin/magento module:enable Moses_Log
php bin/magento setup:upgrade

支持的日志记录

  • Rest API 日志记录
  • ElasticSearch 日志记录

对于小于 2.4.4 的 Magento 版本,如果您需要 GraphQl 日志记录支持,请尝试以下操作(注意:这未经过我的测试,您可以尝试一下)

警告:此软件包无法通过 Composer 1.x 安装,请确保您已升级到 Composer 2+。

或者您也可以从 github 下载 https://github.com/mosesdinakaran/magento-log.git

API 日志记录

提供记录所有/特定 API 调用的选项。

在我们的大多数环境中,我们使用不同的第三方服务,例如订单管理、产品管理、产品搜索、运输管理等。这些服务通过 Rest API 与 Magento 交互。

有时,如果我们遇到这些服务的任何问题,确定根本原因会非常困难。

此外,如果我们主要在无头环境中使用 Rest API,确定某些问题的根本原因将非常困难。

考虑以下场景:只有某个特定客户的“添加到购物车”功能不正常。

为了有效地调试此问题,我们需要该特定用户提交的请求数据、头信息等。

此扩展将帮助您在这种情况下。它具有可以记录特定用户发出的 API 请求的功能。

让我们看看此扩展的完整功能。

Rest API logging

功能

通过管理员配置启用或禁用日志记录

能够使用正则表达式配置需要记录的 API URL,这将为开发者提供记录特定 URL 的无限机会

一些示例包括

  • 能够记录所有 API 日志
  • 能够记录登录用户的 API 调用
  • 能够记录访客用户的 API 调用
  • 能够记录特定的 API 调用,例如自定义 API、购物车、CMS、产品、订单等
  • 能够记录特定用户的 API 调用。
  • API 日志包含请求和响应
  • 日志记录在单独的文件中
  • 此扩展不会覆盖任何核心 API 类。

由于其非常轻量,因此可以安全地部署到生产环境中。

配置

店铺 -> 配置 -> Moses 扩展 -> API 日志

启用 API 日志:启用所有/选定的 API 调用

正则表达式模式:定义要记录选定 URL 的正则表达式模式,对于多个 URL 使用下一行。

V1/carts/9 : 匹配包含 V1/carts/9 的所有 quote ID 为 9 的 URL

V1/carts/(\d)* : 匹配所有 quote

V1/checkoutcomupapi/getTokenList : 匹配特定 URL

Elastic Search 日志记录

有时你可能需要找出确切推送至 Elasticsearch 的数据以及我们收到的响应。此扩展将帮助你做到这一点。它将记录 Magento 的所有 Elasticsearch 请求和响应。

配置

店铺 -> 配置 -> Moses 扩展 -> Elasticsearch 日志

工作原理

实现并不复杂,相当简单。

Magento 使用第三方 API 客户端 "elasticsearch/elasticsearch" 与 Elasticsearch 交互。默认情况下,此扩展具有记录请求和响应的功能。

\Elasticsearch\Connections\Connection::logRequestSuccess

但是在创建此 Elasticsearch 模型的实例时,由于 Magento 总是设置日志记录器为 NULL,因此请求从未被记录。此扩展通过插件将日志记录器设置为自定义日志记录器,因此请求和响应被记录。

GraphQl 日志记录

记录 GraphQL 请求和响应。

配置

店铺 -> 配置 -> Moses 扩展 -> Graphql 日志

Graphql logging

功能

  • 能够记录 GET/POST 请求或所有请求
  • 能够根据 HTTP 标头值记录
  • 能够根据查询类型记录
    • product : 仅记录 product 查询类型
    • product,categories : 记录 product 和 categories 查询类型

RabbitMq 日志记录

记录从 Magento 发送到 RabbitMq 服务器或由 Magento 从 RabbitMq 消费的消息。

配置

店铺 -> 配置 -> Moses 扩展 -> RabbitMq 日志

RabbitMq logging

功能

  • 能够记录外出消息(发布到 RabbitMq 服务器上的消息)
  • 能够记录传入消息(从 RabbitMq 服务器消费的消息)

Varnish 缓存标签日志

记录 varnish 清除缓存标签,有关更多信息请参阅 此处

配置

店铺 -> 配置 -> Moses 扩展 -> 记录 Varnish 缓存清除标签

输出

一旦启用日志记录,日志数据将可在此处找到:MAGE_ROOT/var/log/moses-logging.log