drbiko/monolog-slack

此包包含将monolog日志发送到Slack频道的处理器/处理器。

v1.1.2 2019-03-29 22:36 UTC

This package is auto-updated.

Last update: 2024-08-29 04:54:43 UTC


README

codecov Build Status SensioLabsInsight MIT licensed

描述

这是一个可以帮助您通过webhooks使用monolog将日志发送到Slack的包。Monolog已经有一个使用Webhooks的Slack处理器,但我不喜欢它,原因如下:

它有一些错误

  • Slack接受2000个字符。更多详细信息,请查看。当前包无法发送超过2000个字符,但可以发送直到2000个字符,并且格式良好。

性能

  • Monolog有WhatFailureGroupHandler,但我认为不将我的处理器包装在另一个处理器中更简单,并且逻辑更简单、更快。查看
  • SlackWebhookHandler没有超时,并且在Slack服务中断时执行重试。查看

格式化

  • 当前包允许您向SlackwebhookHandler添加自定义格式化器以格式化附件。Monolog允许您将格式化器传递给SlackHandlers,但该格式化器仅应用于Slack的简单消息,并且不适用于附件。
  • 我已经创建了自定义格式化器,并且我更喜欢我创建的Slack记录的格式,而不是Monolog的格式。

安装

您可以通过composer安装此包

$ composer require webthink/monolog-slack

文档

简单初始化

您可以使用以下行简单初始化SlackWebhookHandler

$handler = new SlackWebhookHandler('your_webhook_url');

格式化器

注入自定义格式化器

现在,如果您需要传递自定义Slack格式化器,则需要执行以下操作

$hanlder->setFormatter($yourFormatter);

  • 注意-1:传递给Slack处理器的格式化器必须是SlackFormatterInterface的实例。
  • 注意-2:如果没有传递自定义格式化器,SlackWebhookHandler默认使用SlackLineFormatter
  • 注意-3:在构造处理器时传递的一些设置被传递的格式化器覆盖。

SlackLineFormatter

slacklineformatter

SlackShortAttachmentFormatter

slackshortattachementformatter

SlackLongAttachmentFormatter

slacklongattachementformatter

HTTP客户端。

使用PSR-18 HTTP客户端初始化

SlackWebhookHandler内部,您可以注入您的PSR-18 HTTP客户端。

$handler = new SlackWebhookHandler('your_webhook_url', null, null, LogLevel::ERROR, true, $client);`

如果没有传递PSR-18 HTTP客户端作为参数,则SlackwebhookHandler默认初始化一个\Http\Adapter\Guzzle6\Client。初始化的客户端具有1秒的超时和连接超时。

变更日志

请查看CHANGELOG以获取有关最近更改的更多信息。

测试

  1. 从bash运行composer install
  2. 从bash运行composer tests