温馨提示×

Golang日志中如何记录网络请求

小樊
39
2025-12-11 07:44:05
栏目: 编程语言

在Golang中,你可以使用标准库"log"来记录网络请求。以下是一个简单的示例,展示了如何使用"log`包记录HTTP GET请求的信息:

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	url := "https://api.example.com/data"

	// 发送HTTP GET请求
	resp, err := http.Get(url)
	if err != nil {
		log.Fatalf("Error fetching URL: %v", err)
	}
	defer resp.Body.Close()

	// 读取响应内容
	body, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatalf("Error reading response body: %v", err)
	}

	// 记录网络请求信息
	log.Printf("Request to %s completed with status code: %d\n", url, resp.StatusCode)
	log.Printf("Response body: %s\n", string(body))
}

在这个示例中,我们首先发送一个HTTP GET请求到指定的URL。如果请求过程中出现错误,我们使用log.Fatalf记录错误信息并终止程序。如果请求成功,我们读取响应内容并使用log.Printf记录请求的URL、状态码和响应内容。

你可以根据需要调整日志记录的详细程度和格式。例如,你可以添加时间戳、请求耗时等信息。为了实现更高级的日志记录功能,你还可以考虑使用第三方日志库,如logruszap。这些库提供了更多的功能和配置选项,可以帮助你更好地管理和分析日志。

0