jgfontana/laravel-discord-logger

在 Laravel 中将日志记录到 Discord 频道

资助包维护!
vpratfr

dev-master 2024-09-23 13:47 UTC

This package is auto-updated.

Last update: 2024-09-23 13:47:29 UTC


README

Latest Version on Packagist Software License Total Downloads

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

安装

您可以通过 composer 安装此包

composer require jgfontana/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)。有关更多信息,请参阅许可证文件