1
0
mirror of https://github.com/labstack/echo.git synced 2025-01-10 00:28:23 +02:00
echo/website/content/guide/customization.md
Vishal Rana d932e2a863 Added directory autoindex
Signed-off-by: Vishal Rana <vr@labstack.com>
2015-11-23 22:12:56 -08:00

1.6 KiB

title menu
Customization
side
parent weight
guide 2

HTTP error handler

Echo#SetHTTPErrorHandler(h HTTPErrorHandler)

Registers a custom Echo#HTTPErrorHandler.

Default handler rules:

  • If error is of type Echo#HTTPError it sends HTTP response with status code HTTPError.Code and message HTTPError.Message.
  • Else it sends 500 - Internal Server Error.
  • If debug mode is enabled, it uses error.Error() as status message.

Debug

Echo#SetDebug(on bool)

Enables/disables debug mode.

Log output

echo#SetOutput(w io.Writer)

SetOutput sets the output destination for the global logger.

Log level

echo#SetLogLevel(l log.Level)

SetLogLevel sets the log level for global logger. The default value is log.INFO.

Auto index

Echo#AutoIndex(on bool)

AutoIndex enables automatically creates a directory listing if the directory doesn't contain an index page.

Example

e := echo.New()
e.AutoIndex(true)
e.ServerDir("/", "/Users/vr/Projects/echo")
e.Run(":1323")

Browse to http://localhost:1323/ to see the directory listing.

Hook

Echo#Hook(http.HandlerFunc)

Hook registers a callback which is invoked from Echo#ServerHTTP as the first statement. Hook is useful if you want to modify response/response objects even before it hits the router or any middleware.

For example, the following hook strips the trailing slash from the request path.

e.Hook(func(w http.ResponseWriter, r *http.Request) {
    path := r.URL.Path
    l := len(path) - 1
    if path != "/" && path[l] == '/' {
        r.URL.Path = path[:l]
    }
})