marvinlabs / laravel-discord-logger
在 Laravel 中向 Discord 频道记录日志
Requires
- php: >=7.3 | ^8.0
- ext-json: *
- guzzlehttp/guzzle: ^6.3|^7.0
- illuminate/support: ^7.0|^8.0|^9.0|^10.0 | ^11.0
Requires (Dev)
- mockery/mockery: ^1.0
- orchestra/testbench: ^5.0|^6.0|^8.0 | ^9.0
- phpunit/phpunit: ^8.0|^9.0 | ^10.5
- roave/security-advisories: dev-master
README
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。
它看起来像什么?
您可以使用提供的转换器预览其外观。
与 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 文件并重新启动您的服务器以实施更改。
版本历史
请参阅专用更改日志
致谢
- 从 GrKamil/laravel-telegram-logging 获得了一些想法
- 从 lefuturiste/monolog-discord-handler 获得了一些想法
许可证
MIT 许可证(MIT)。请参阅许可证文件以获取更多信息。