marvinlabs/laravel-discord-logger

在 Laravel 中向 Discord 频道记录日志

v1.4.2 2024-03-25 08:51 UTC

README

Latest Version on Packagist Software License Total Downloads

marvinlabs/laravel-discord-logger 是一个 Laravel 包,提供将日志发送到 Discord 频道的日志处理器。

安装

您可以通过 composer 安装此包

composer require marvinlabs/laravel-discord-logger

如果您使用的是 Laravel 5.5 或更高版本,服务提供程序将自动被发现。

在更早的版本上,您需要手动完成此操作。您必须安装服务提供程序

// config/app.php
'providers' => [
    ...
    MarvinLabs\DiscordLogger\ServiceProvider::class
];

然后您可以发布配置文件

php artisan vendor:publish --provider "MarvinLabs\DiscordLogger\ServiceProvider"

设置

准备 Discord 频道 webhook

为将接收日志的频道创建一个 Discord webhook。

准备日志配置

您必须在您的 config/logging.php 文件中添加一个新频道

// config/logging.php
'channels' => [
    //...
    'discord' => [
        'driver' => 'custom',
        'via'    => MarvinLabs\DiscordLogger\Logger::class,
        'level'  => 'debug',
        'url'    => env('LOG_DISCORD_WEBHOOK_URL'),
        'ignore_exceptions' => env('LOG_DISCORD_IGNORE_EXCEPTIONS', false),
    ],
];

然后您可以在您的 .env 文件中提供 webhook URL

LOG_DISCORD_WEBHOOK_URL=https://discordapp.com/api/webhooks/abcd/1234

使用日志频道

您有两个选项:只记录到 Discord 或将频道添加到堆栈

只记录到 Discord 频道

只需将 .env 变量更改为使用 Discord 频道

LOG_CHANNEL=discord

将频道添加到其他频道之上

config/logging.php 配置中将频道添加到堆栈

// config/logging.php
'channels' => [
    //...
    'stack' => [
        'driver'   => 'stack',
        'channels' => ['single', 'discord'],
    ],
];

然后确保在您的 .env 文件中日志频道设置为堆栈

LOG_CHANNEL=stack

记录到多个 Discord 频道

当然,您可以发送日志消息到多个 Discord 频道。只需在 config/logging.php 中创建所需的频道数量,并将它们放入堆栈。每个频道应具有不同的名称,并指向不同的 webhook URL。

它看起来像什么?

您可以使用提供的转换器预览其外观。

Screenshot

与 Discord Webhook 通信失败

当您在开发环境中使用/测试 webhook 时,可能会遇到此异常以及 "cURL 错误 60:SSL 证书问题:无法获取本地发行者证书"。这发生是因为您的本地计算机无法验证服务器的 SSL 证书。

要解决这个问题,请按照以下步骤操作

  • 从 curl 网站获取 cacert.pem 文件。

  • 将 cacert.pem 文件存储在计算机上的安全位置,例如 C:\xampp\php\extras\ssl\cacert.pem。

  • 访问您的 php.ini 文件,通常位于您的 PHP 安装目录中。

  • 找到 php.ini 中的 curl.cainfo =。如果它被注释掉(以分号开始),请删除分号。

  • 插入您之前保存的 cacert.pem 路径。例如:curl.cainfo = "C:\xampp\php\extras\ssl\cacert.pem"。

  • 保存 php.ini 文件并重新启动您的服务器以实施更改。

版本历史

请参阅专用更改日志

致谢

许可证

MIT 许可证(MIT)。请参阅许可证文件以获取更多信息。