snt*_*ode 2 php logging curl laravel-5 slack
我刚刚在 Slack 中设置了一个 webhook,以便从我的 Laravel 应用程序发送日志记录。
当日志行执行时,会弹出这个错误:
RuntimeException
Curl error (code 3): <url> malformed
Run Code Online (Sandbox Code Playgroud)
来源:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
日志行:
Log::channel('slack')->info('hi');
Run Code Online (Sandbox Code Playgroud)
配置是这样的:
'slack' => [
'driver' => 'slack',
'url' => env('https://hooks.slack.com/services/TC3S00PFC/BC411TH4M/YXAu...'),
'username' => 'app',
'emoji' => ':boom:',
'level' => 'info',
],
Run Code Online (Sandbox Code Playgroud)
我尝试使用不同的 webhook url,用户名。Curl 在 php 中被激活。没有其他线索...
如果字符串未在 .env 中定义,env() 将返回 null,因此您只需将 url 设置为 null。也许你打算做类似的事情
'url' => 'https://hooks.slack.com/services/TC3S00...'
Run Code Online (Sandbox Code Playgroud)
或者
'url' => env(SLACK_URL, 'https://hooks.slack.com/services/TC3S00...')
Run Code Online (Sandbox Code Playgroud)
(并在 .env 中为 SLACK_URL 设置一个条目)