Explorar el Código

(feature)add http method log-color,like http response status code

Damon Zhao hace 11 años
padre
commit
6634f04d9b
Se han modificado 1 ficheros con 30 adiciones y 7 borrados
  1. 30 7
      logger.go

+ 30 - 7
logger.go

@@ -27,11 +27,14 @@ func ErrorLoggerT(typ uint32) HandlerFunc {
 }
 
 var (
-	green  = string([]byte{27, 91, 57, 55, 59, 52, 50, 109})
-	white  = string([]byte{27, 91, 57, 48, 59, 52, 55, 109})
-	yellow = string([]byte{27, 91, 57, 55, 59, 52, 51, 109})
-	red    = string([]byte{27, 91, 57, 55, 59, 52, 49, 109})
-	reset  = string([]byte{27, 91, 48, 109})
+	green   = string([]byte{27, 91, 57, 55, 59, 52, 50, 109})
+	white   = string([]byte{27, 91, 57, 48, 59, 52, 55, 109})
+	yellow  = string([]byte{27, 91, 57, 55, 59, 52, 51, 109})
+	red     = string([]byte{27, 91, 57, 55, 59, 52, 49, 109})
+	blue    = string([]byte{27, 91, 57, 55, 59, 52, 52, 109})
+	magenta = string([]byte{27, 91, 57, 55, 59, 52, 53, 109})
+	cyan    = string([]byte{27, 91, 57, 55, 59, 52, 54, 109})
+	reset   = string([]byte{27, 91, 48, 109})
 )
 
 func Logger() HandlerFunc {
@@ -68,14 +71,34 @@ func Logger() HandlerFunc {
 		default:
 			color = red
 		}
+
+		var methodColor string
+		method := c.Request.Method
+		switch {
+		case method == "GET":
+			methodColor = blue
+		case method == "POST":
+			methodColor = cyan
+		case method == "PUT":
+			methodColor = yellow
+		case method == "DELETE":
+			methodColor = red
+		case method == "PATCH":
+			methodColor = green
+		case method == "HEAD":
+			methodColor = magenta
+		case method == "OPTIONS":
+			methodColor = white
+		}
 		end := time.Now()
 		latency := end.Sub(start)
-		stdlogger.Printf("[GIN] %v |%s %3d %s| %12v | %s %4s %s\n%s",
+		stdlogger.Printf("[GIN] %v |%s %3d %s| %12v | %s |%s %4s %s| %s\n%s",
 			end.Format("2006/01/02 - 15:04:05"),
 			color, code, reset,
 			latency,
 			requester,
-			c.Request.Method, c.Request.URL.Path,
+			methodColor, method, reset,
+			c.Request.URL.Path,
 			c.Errors.String(),
 		)
 	}