lefuturiste/monolog-discord-handler

用于支持 Discord Webhooks 的简单 Monolog 处理器

0.4 2024-02-12 12:16 UTC

This package is auto-updated.

Last update: 2024-09-12 13:32:21 UTC


README

Latest Stable Version Total Downloads License Monthly Downloads

用于支持 Discord Webhooks 的简单 Monolog 处理器

依赖关系

  • PHP >= 8.1
  • Monolog >= 3.0

如果您想使用此库与较旧的 PHP 版本,请安装 0.4 之前的版本

1. 安装

通过 composer 简单安装。还不知道 composer 是什么?在这里了解一下 这里

composer require lefuturiste/monolog-discord-handler

2. 使用方法

将此处理器推送到您的 Monolog 实例

单个 webhook URL

<?php
require 'vendor/autoload.php';

$log = new Monolog\Logger('your name');

$log->pushHandler(new DiscordHandler\DiscordHandler('https://discordapp.com/api/webhooks/xxx/yyy', 'name', 'subname', 'DEBUG'));

多个 webhook URL

<?php
require 'vendor/autoload.php';

$log = new Monolog\Logger('your name');

$log->pushHandler(new DiscordHandler\DiscordHandler([
  'https://discordapp.com/api/webhooks/xxx/yyy',
  'https://discordapp.com/api/webhooks/xxx/yyy'
], 'name', 'subname', 'DEBUG'));

使用配置

您可以自定义默认消息和日期时间格式。

<?php
require 'vendor/autoload.php';

$log = new Monolog\Logger('name');

$handler = new DiscordHandler\DiscordHandler('https://discordapp.com/api/webhooks/xxx/yyy', 'name', 'subname', 'DEBUG');

$handler->getConfig()
    ->setMultiMsg(true)
    ->setMaxMessageLength(2000) // at least 50 characters
    ->setDatetimeFormat('Y/m/d H:i')
    ->setTemplate("{datetime} {name}: {message}");

// or you can create another Config instance and replace it:
$otherConfig = new DiscordHandler\Config();
$otherConfig->setWebHooks([
  'https://discordapp.com/api/webhooks/xxx/yyy', 
  'https://discordapp.com/api/webhooks/xxx/yyy'
]);

$handler->setConfig($otherConfig);

$log->pushHandler($handler);

3. 运行示例

要运行示例,您需要

  • 克隆此仓库
  • 在根目录下运行 composer install
  • 将目录更改为 examples
  • 设置环境变量 DISCORD_WEBHOOK_URL 后运行: env DISCORD_WEBHOOK_URL=https://… php ./simple_usage.php

4. 贡献

  • composer install
  • cp .env.example .env
  • composer test,目前我们还没有单元测试。
  • 运行 vendor/bin/phpstan analyse src -l 6 以运行静态分析器。

待办事项

  • 升级到 monolog 3.0
  • 升级到 php 8.1
  • 使用 php 8.1 的类型安全功能
  • 删除过时的“单元”测试,这些实际上是集成测试
  • 添加简单的单元测试,将测试接口