薇贝洛佐罗夫/monolog-gearman-handler

Monolog 日志库的 Gearman 处理程序

v0.7 2017-03-31 09:28 UTC

This package is not auto-updated.

Last update: 2024-09-29 02:13:29 UTC


README

Monolog 处理程序,用于将日志发送到 Gearman。这可能对在另一台机器上异步记录日志非常有用。

要求

从包名中可以看出,没有 Gearman PHP 扩展 ,此包将毫无用处。由于 Composer 无法安装它,您需要自行安装。

安装

composer require vbelozyorov/monolog-gearman-handler

这将安装此包本身,如果尚未安装,还将安装 Monolog

配置

因为处理程序构造函数需要 Gearman 客户端,而 Gearman 客户端又需要 Gearman 服务器的地址和端口号,所以当初始化日志记录器时,您需要提供所有这些信息。

以下是为 Symfony2 准备的 YAML 配置示例

services:
    gearman.client:
        class: GearmanClient
        calls:
            - [addServer, [%logs.gearman_host%, %logs.gearman_port%]]

    monolog.gearman_handler:
        class: Monolog\Handler\GearmanHandler
        arguments:
            - '@gearman.client'
        calls:
            - [setPrefix, ['project_alias']]

monolog:
    channels: [gearman]
    handlers:
        gearman:
            type:   service
            id:     monolog.gearman_handler
            level:  debug
            channels: [gearman]

        main:
            channels: ['!gearman']

在此示例中,注册了一个名为 gearman 的单独的 Monolog 通道。默认情况下,在 Symfony 应用程序中使用的处理程序 main 排除了这个新通道。这样,诸如 kernel.debug 的事件日志就不会被发布在那里。

如何使用此配置获取 Gearman 日志记录器

$logger = $this->getContainer()->get('monolog.logger.gearman');