溫馨提示×

Golang日志中如何記錄請求

小樊
55
2025-06-13 04:40:43
欄目: 編程語言

在Golang中,我們可以使用標準庫"log"或者第三方庫(如logrus、zap等)來記錄日志。這里我將為您展示如何使用標準庫"log"記錄HTTP請求。

首先,我們需要導入相關的包:

package main

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

接下來,我們創建一個簡單的HTTP處理函數,用于記錄請求信息:

func requestHandler(w http.ResponseWriter, r *http.Request) {
	log.Printf("Request: %s %s", r.Method, r.URL.Path)
	log.Printf("Headers: %v", r.Header)
	log.Printf("Body: %s", r.Body)
	fmt.Fprintf(w, "Hello, World!")
}

在這個處理函數中,我們使用log.Printf記錄了請求的方法、URL路徑、請求頭和請求體。注意,r.Body是一個io.ReadCloser類型,我們不能直接將其轉換為字符串。在實際應用中,您可能需要讀取并處理請求體,然后再將其寫回響應。為了簡化示例,我們在這里直接將請求體寫入響應。

最后,我們在main函數中設置路由并啟動HTTP服務器:

func main() {
	http.HandleFunc("/", requestHandler)
	log.Println("Server is running on port 8080...")
	err := http.ListenAndServe(":8080", nil)
	if err != nil {
		log.Fatal(err)
	}
}

現在,當您運行此程序并通過瀏覽器或其他HTTP客戶端訪問它時,您將在控制臺中看到請求的詳細信息。

如果您需要更高級的日志功能,可以考慮使用第三方庫,如logrus或zap。這些庫提供了更多的功能,例如結構化日志、日志級別和更好的性能。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女