From 6c8022607cd5a665e8cda7d34c1ac63e261d2d27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A1=9C=E8=8F=AF?= Date: Tue, 18 Apr 2023 06:03:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=88=E4=BD=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.go | 52 +++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 47 insertions(+), 5 deletions(-) diff --git a/main.go b/main.go index 8b20215..c79b17b 100644 --- a/main.go +++ b/main.go @@ -2,18 +2,60 @@ package main import ( "fmt" + "log" "net/http" + "runtime" + "time" ) func main() { + runtime.GOMAXPROCS(runtime.NumCPU()) fmt.Println("Hello, World!") http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志 + fmt.Fprintf(w, "Hello, World!") + }) + http.HandleFunc("/images", func(w http.ResponseWriter, r *http.Request) { + defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志 + fmt.Fprintf(w, "Hello, World!") + }) + http.HandleFunc("/models", func(w http.ResponseWriter, r *http.Request) { + defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志 + fmt.Fprintf(w, "Hello, World!") + }) + http.HandleFunc("/tasks", func(w http.ResponseWriter, r *http.Request) { + defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志 + fmt.Fprintf(w, "Hello, World!") + }) + http.HandleFunc("/users", func(w http.ResponseWriter, r *http.Request) { + defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志 + fmt.Fprintf(w, "Hello, World!") + }) + http.HandleFunc("/tags", func(w http.ResponseWriter, r *http.Request) { + defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志 fmt.Fprintf(w, "Hello, World!") }) - http.HandleFunc("/images", func(w http.ResponseWriter, r *http.Request) {}) - http.HandleFunc("/models", func(w http.ResponseWriter, r *http.Request) {}) - http.HandleFunc("/tasks", func(w http.ResponseWriter, r *http.Request) {}) - http.HandleFunc("/users", func(w http.ResponseWriter, r *http.Request) {}) - http.HandleFunc("/tags", func(w http.ResponseWriter, r *http.Request) {}) http.ListenAndServe(":8080", nil) } + +func LogComponent(startTime int64, r *http.Request) { + ms := (time.Now().UnixNano() - startTime) / 1000000 + color := "\033[1;32m%d\033[0m" + if ms > 800 { + color = "\033[1;31m%dms\033[0m" // 紅色加重 + } else if ms > 500 { + color = "\033[1;33m%dms\033[0m" // 黃色加重 + } else if ms > 300 { + color = "\033[1;32m%dms\033[0m" // 綠色加重 + } else if ms > 200 { + color = "\033[1;34m%dms\033[0m" // 藍色加重 + } else if ms > 100 { + color = "\033[1;35m%dms\033[0m" // 紫色加重 + } else { + color = "\033[1;36m%dms\033[0m" // 黑色加重 + } + endTime := fmt.Sprintf(color, ms) + method := fmt.Sprintf("\033[1;32m%s\033[0m", r.Method) // 綠色加重 + url := fmt.Sprintf("\033[1;34m%s\033[0m", r.URL) // 藍色加重 + log.Println(method, url, endTime) +}