code: func LoggingMiddleware(out io.Writer) MiddlewareHandlerFunc {
  	return func(next HandlerFunc) HandlerFunc {
  		fn := func(ctx *Context) {
  			start := time.Now()
  			path := ctx.Request.URL.Path
  
  			next(ctx)
  
  			end := time.Now()
  			latency := end.Sub(start)
  
  			clientIP := ctx.ClientIP()
  			method := ctx.Request.Method
  			statusCode := ctx.statusCode
  			statusColor := colorForStatus(statusCode)
  			methodColor := colorForMethod(method)
  
  			fmt.Fprintf(out, "%v |%s %3d %s| %13v | %s |%s  %s %-7s %s\n",
  				end.Format("2006/01/02 - 15:04:05"),
  				statusColor, statusCode, reset,
  				latency,
  				clientIP,
  				methodColor, reset, method,
  				path,
  			)
  		}
  		return fn
  	}
  }
docs: // LoggingMiddleware is the built-in middleware for logging.
  // This method is referred from https://github.com/gin-gonic/gin/blob/develop/logger.go#L46