jgfontana / laravel-discord-logger
在 Laravel 中将日志记录到 Discord 频道
Requires
- php: >=7.0 | ^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
This package is auto-updated.
Last update: 2024-09-23 13:47:29 UTC
README
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。
它看起来像什么?
您可以使用提供的每个转换器来预览其外观。
与 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)。有关更多信息,请参阅许可证文件。
