kingfisherdirect / magento2-elasticsearch-logger

v1.0.2 2021-06-03 12:29 UTC

This package is auto-updated.

Last update: 2024-09-29 06:03:02 UTC


README

这是一个将日志直接发送到Elasticsearch的Magento 2模块

安装

  1. 安装composer包
composer require kingfisherdirect/magento2-elasticsearch-logger
  1. 然后运行
bin/magento setup:upgrade
  1. 通过bin/magento setup:installenv.php文件配置模块
bin/magento setup:install \
    --elasticsearch-logger-config='{"hosts": ["http://elasticsearch:9200"]}'\
    --elasticsearch-logger-index='magento2-logs'
  1. app/etc/di.xml中启用处理器
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <!-- some XML -->

    <!-- Find configuration for class Magento\Framework\Logger\Monolog -->
    <type name="Magento\Framework\Logger\Monolog">
        <arguments>
            <argument name="name" xsi:type="string">main</argument>
            <argument name="handlers"  xsi:type="array">
                <item name="system" xsi:type="object">Magento\Framework\Logger\Handler\System</item>
                <item name="debug" xsi:type="object">Magento\Framework\Logger\Handler\Debug</item>
                <item name="syslog" xsi:type="object">Magento\Framework\Logger\Handler\Syslog</item>
                <!-- Add following line -->
                <item name="elasticsearch" xsi:type="object">KingfisherDirect\ElasticSearchLogger\Handler\ElasticSearchHandler</item>
            </argument>
        </arguments>
    </type>

    <!-- some other XML -->
</config>

配置

模块可以通过app/etc/env.php文件进行配置,因为Elasticsearch的详细信息可能因部署而异。

要设置值,最好使用安装说明中描述的setup:install脚本

bin/magento setup:install \
    --elasticsearch-logger-config='{"hosts": ["http://elasticsearch:9200"]}' \
    --elasticsearch-logger-index='magento2-logs'

elasticsearch-logger-config

这是一个JSON配置,然后反序列化并用作构建Elasticsearch客户端的配置。基本设置如下

{
    "hosts": [
        "http://elasticsearch.example.org:9200"
    ]
}

如果您使用elasti.co服务,则应使用此配置

{
    "elasticCloudId": "ID",
    "basicAuthentication": ["USER", "PASSWORD"]
}

内部使用Elasticsearch\ClientBuilder::fromConfig()方法进行配置,因此您可能需要深入研究代码或检查https://github.com/elastic/elasticsearch-php上的库

如果此值留空,则不会将日志发送到Elasticsearch。

env.php中,此值存储为PHP数组,而不是包含JSON的字符串

elasticsearch-logger-index

默认:monolog

日志应放入的索引名称

测试

尚未有任何。