fittinq/logger-elasticsearch

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

5.3.0 2024-09-22 11:02 UTC

This package is auto-updated.

Last update: 2024-09-22 09:02:56 UTC


README

此库提供了一个框架,用于将日志记录到ElasticSearch。它有一些可能在第一眼看起来很奇怪的概念。

连接到ElasticSearch

首先,我们使用客户端构建器连接到ElasticSearch。您可以在service.yml中设置如下:


Fittinq\Logger\Elastic\ClientBuilder:
    arguments:
        - '%env(ELASTIC_LOGGER_HOST)%'

索引

ElasticSearch日志记录器必须将其消息写入给定的索引。由于您可能希望根据日期或字母顺序决定索引,我们引入了IndexResolver。

为了帮助您开始,我们添加了一个IndexResolver类,它简单地将索引命名为其构造函数中传递的任何名称。我们还提供了一个名为DateIndex的第二个解析器,它在给定名称后附加日期,格式为yyyymmdd。

您可以通过以下方式将这些添加到项目中:

Fittinq\Logger\Index\IndexResolver:
    arguments:
        - 'my_index'


Fittinq\Logger\Index\DateIndex:
    arguments:
        - 'prefix_%env(APP_ENV)%'
        - '_Ymd'
        

上下文

当您记录消息时,您可能希望添加一些上下文。例如,记录消息的服务是哪个。您可以在记录消息的地方提供上下文,因为PSR-3支持此功能。然而,这可能不方便。您可能没有正确的数据。例如,您不希望每个记录消息的类都知道它们所在的服务名称。实际上,如果它来自另一个库,您甚至可能无法将其添加到类中。

我们使用ContextResolver来处理这个问题。您可以使用此功能设置每次记录消息时都添加到上下文中的逻辑。

Fittinq\Logger\Context\ContextResolver:
    arguments:
        - { arg1: 'myvalue', arg2: 'myvalue2' }

设置实际的日志记录器

然后我们将所有部件组合在一起

   Fittinq\Logger\Logger\ElasticSearchLogger:
        arguments:
            - '@Fittinq\Logger\Elastic\ClientBuilder'
            - '@Fittinq\Logger\Index\DateIndex'
            - '@Fittinq\Logger\Context\ContextResolver'