Check out cube middleware for HTTP analytics. Measure server latency, data transfer, discover top endpoints, server errors and much more.

Customization

Debug

Echo#Debug can be used to enable / disable debug mode. Debug mode sets the log level to DEBUG.

Logging

Log Output

Echo#Logger.SetOutput(io.Writer) can be used to set the output destination for the logger. Default value is os.Stdout

To completely disable logs use Echo#Logger.SetOutput(ioutil.Discard) or Echo#Logger.SetLevel(log.OFF)

Log Level

Echo#Logger.SetLevel(log.Lvl) can be used to set the log level for the logger. Default value is OFF. Possible values:

  • DEBUG
  • INFO
  • WARN
  • ERROR
  • OFF

Custom Logger

Logging is implemented using echo.Logger interface which allows you to register a custom logger using Echo#Logger.

Custom Server

Echo#StartServer() can be used to run a custom server.

Example

s := &http.Server{
  Addr:         ":1323",
  ReadTimeout:  20 * time.Minute,
  WriteTimeout: 20 * time.Minute,
}
e.Logger.Fatal(e.StartServer(s))

Startup Banner

Echo#HideBanner can be used to hide the startup banner.

Custom Listener

Echo#*Listener can be used to run a custom listener.

Example

l, err := net.Listen("tcp", ":1323")
if err != nil {
  e.Logger.Fatal(l)
}
e.Listener = l
e.Logger.Fatal(e.Start(""))

Disable HTTP/2

Echo#DisableHTTP2 can be used disable HTTP/2 protocol.

Read Timeout

Echo#*Server#ReadTimeout can be used to set the maximum duration before timing out read of the request.

Write Timeout

Echo#*Server#WriteTimeout can be used to set the maximum duration before timing out write of the response.

Validator

Echo#Validator can be used to register a validator for performing data validation on request payload.

Learn more

Custom Binder

Echo#Binder can be used to register a custom binder for binding request payload.

Learn more

Renderer

Echo#Renderer can be used to register a renderer for template rendering.

Learn more

HTTP Error Handler

Echo#HTTPErrorHandler can be used to register a custom http error handler.

Learn more

Got a question?