cytec/laminas-log-slack

将 laminas-log 消息写入 Slack 频道

3.1.0 2021-07-21 11:05 UTC

This package is auto-updated.

Last update: 2024-09-21 17:41:41 UTC


README

将 laminas-log 消息写入 Slack 频道

安装

composer require cytec/laminas-log-slack

Slack 配置

日志写入器通过向 Slack 的 "Incoming WebHooks" 集成发送信息来工作

  1. 打开您希望接收日志的频道。
  2. 点击左上角的频道名称,然后从下拉菜单中选择 "添加应用或集成"。
  3. 点击 "构建"(右上角)。
  4. 点击 "创建自定义集成"。
  5. 选择 "Incoming WebHooks"。
  6. 点击大型的绿色按钮 "添加 Incoming WebHooks 集成"。

您需要 Webhook URL 来配置写入器。在 "集成设置" 下,您可以自定义一些默认设置。

用法

手动

$writer = new \Cytec\Log\Writer\Slack('<YOUR_SLACK_WEBHOOK_URL>');

//Optional - use this filter only if you want to send critical messages to Slack
$writer->addFilter(new \Laminas\Log\Filter\Priority(\Laminas\Log\Logger::CRIT));

$logger = new \Laminas\Log\Logger();
$logger->addWriter($writer);

$logger->info('Informational message');
$logger->crit('Critical message');

//second "extra" parameter is supported and printed as properties in slack
$logger->crit('Critical message', $_SERVER);

通过服务管理器

在您的配置中某处(例如 config/autoload/global.php)添加

...
'log' => [
    'SlackLog' => [
        'writers' => [
            'default' => [
                'name' => 'Cytec\Log\Writer\Slack',
                'options' => [
                    'webhook_url' => '<YOUR_SLACK_WEBHOOK_URL>',
                    'bot_name' => 'Project Name',   //optional
                    'channel_override' => '#alerts',//optional @person is also supported
                    'filters' => \Laminas\Log\Logger::CRIT,      //optional - filter by priority
                ]
            ]
        ]
    ]
],
...

然后您可以通过服务管理器获取记录器

$log = $this->getServiceManager()->get('SlackLog');
$log->crit('Critical message');

请注意

由于日志消息是通过 http 接口发送到 Slack API 的,因此此写入器不适合持续写入。这使得它非常慢,并且可能会在应用程序响应时间中增加显著延迟。预期的用途是需要立即引起真人注意的临界或非常高优先级消息。