Laravel 记录到 Slack 工作簿会导致“Curl 错误(代码 3):<url> 格式错误”

问题描述 投票:0回答:2

我刚刚在 Slack 中设置了一个 Webhook,以从我的 Laravel 应用程序发送日志记录。

执行日志行时,弹出此错误:

RuntimeException
Curl error (code 3): <url> malformed

来源:

vendor\monolog\monolog\src\Monolog\Handler\Curl\Util.php

{
    while ($retries--) {
        if (curl_exec($ch) === false) {
            $curlErrno = curl_errno($ch);

            if (false === in_array($curlErrno, self::$retriableErrorCodes, true) || !$retries) {
                $curlError = curl_error($ch);

                if ($closeAfterDone) {
                    curl_close($ch);
                }

                throw new \RuntimeException(sprintf('Curl error (code %s): %s', $curlErrno, $curlError));
            }

            continue;
        }

        if ($closeAfterDone) {
            curl_close($ch);
        }
        break;
    }
}

日志行:

Log::channel('slack')->info('hi');

配置是这样的:

    'slack' => [
        'driver' => 'slack',
        'url' => env('https://hooks.slack.com/services/TC3S00PFC/BC411TH4M/YXAu...'),
        'username' => 'app',
        'emoji' => ':boom:',
        'level' => 'info',
    ],

我尝试使用不同的 webhook url、用户名。 Curl 在 php 中被激活。 没有其他线索...

php curl logging laravel-5 slack
2个回答
10
投票
如果 .env 中未定义字符串,则

env() 将返回 null,因此您只需将 url 设置为 null 即可。也许你想做类似的事情

'url' => 'https://hooks.slack.com/services/TC3S00...'

或者

'url' => env(SLACK_URL, 'https://hooks.slack.com/services/TC3S00...')

(并且在 .env 中有一个 SLACK_URL 条目)


0
投票

您好,如果您不生成应用程序的密钥,您将面临这个问题

php artisan 密钥:生成

© www.soinside.com 2019 - 2024. All rights reserved.