gpt4 book ai didi

php - 数据库中的 Laravel 错误报告

转载 作者:行者123 更新时间:2023-12-03 08:26:16 24 4
gpt4 key购买 nike

我正在向 URL 发出请求以使用 Goutte 获取数据。但是我发出请求的服务器很慢。所以有时 laravel 会抛出超时错误。当出现此错误时,我必须在数据库中输入此错误日志以及一些附加数据(即 id 等)。我在互联网上搜索过。但是我找到了所有与自定义错误消息等相关的解决方案。我想要的是当 laravel 抛出超时错误时,我必须在数据库中输入额外的数据,然后重定向页面。如果有人知道解决方案,将不胜感激。

这是我的代码。

use Goutte\Client;
class WebScrapingController extends Controller {
public function index() {
try {
$this->crawler = $this->client->request('GET', $url . '?' . $data);
}catch(Exception $e){
// Here I want to make entry in database and then redirect to another page
dd(['Connection time out', $i, $e]);
}
}
}

这是我的错误信息
ConnectException in CurlFactory.php line 186:
cURL error 7: Failed to connect to myurl port 80: Connection timed out (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)

有时也会出现此错误
RequestException in CurlFactory.php line 187:
cURL error 56: Recv failure: Connection timed out (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)

我正在使用 laravel 5.3 和 this刮刀。

最佳答案

好吧,这就是我的做法:

use Goutte\Client;
class WebScrapingController extends Controller {
public function index() {
try {
$this->crawler = $this->client->request('GET', $url . '?' . $data);
} catch(\ConnectException $e){
$log = new Log();//define this as a model
$log->setMessage($e->getMessage());
$log->save();
} catch(\RequestException $e){
$log = new Log();//define this as a model
$log->setMessage($e->getMessage());
$log->save();
} finally {
$yourModel = YourNamespace\YourModel::find($url);//or, depends on your model structure and DB
$yourModel = YourNamespace\YourModel::where('url',$url)->first();
}
}
}

您也可以移动 saving在私有(private)方法的日志中,我将其保留为这样,因此您可以看到可以不同地处理多个异常,或者您可以将其捕获为一般异常:
    public function index() {
try {
$this->crawler = $this->client->request('GET', $url . '?' . $data);
} catch(\Exception $e){
$log = new Log();//define this as a model
$log->setMessage($e->getMessage());
$log->save();
} finally {
$yourModel = YourNamespace\YourModel::find($url);//or, depends on your model structure and DB
$yourModel = YourNamespace\YourModel::where('url',$url)->first();
}
}

如果你想登录一些文件,你有 Log门面: use Illuminate\Support\Facades\Log;

关于php - 数据库中的 Laravel 错误报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40584173/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com