Documentation
¶
Index ¶
- Variables
- func Logger() echo.MiddlewareFunc
- func LoggerWithConfig(config LoggerConfig) echo.MiddlewareFunc
- func PoweredBy(config PoweredByConfig) echo.MiddlewareFunc
- func RateLimiting(config *RateLimitingConfig) echo.MiddlewareFunc
- func SetLang(config SetLangConfig) echo.MiddlewareFunc
- type LoggerConfig
- type PoweredByConfig
- type RateLimitingCache
- type RateLimitingConfig
- type SetLangConfig
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // DefaultLoggerConfig is the default Logger middleware config. DefaultLoggerConfig = LoggerConfig{ Skipper: middleware.DefaultSkipper, MinBodySize: 0, Timeout: 200 * time.Millisecond, Format: `{"time":"${time_rfc3339_nano}","id":"${id}","remote_ip":"${remote_ip}",` + `"host":"${host}","method":"${method}","uri":"${uri}","user_agent":"${user_agent}",` + `"status":${status},"error":"${error}","latency":${latency},"latency_human":"${latency_human}"` + `,"bytes_in":${bytes_in},"bytes_out":${bytes_out},"req_body":${req_body},"res_body":${res_body}}` + "\n", CustomTimeFormat: "2006-01-02 15:04:05.00000", // contains filtered or unexported fields } )
Functions ¶
func Logger ¶
func Logger() echo.MiddlewareFunc
Logger returns a middleware that logs HTTP requests.
func LoggerWithConfig ¶
func LoggerWithConfig(config LoggerConfig) echo.MiddlewareFunc
LoggerWithConfig returns a Logger middleware with config. See: `Logger()`.
func PoweredBy ¶
func PoweredBy(config PoweredByConfig) echo.MiddlewareFunc
PoweredBy header add Powered-By
func RateLimiting ¶
func RateLimiting(config *RateLimitingConfig) echo.MiddlewareFunc
RateLimiting is rate limit
Types ¶
type LoggerConfig ¶
type LoggerConfig struct {
// Skipper defines a function to skip middleware.
Skipper middleware.Skipper
// Timeout in seconds.
Timeout time.Duration
// Min body
MinBodySize int
// Tags to construct the logger format.
//
// - time_unix
// - time_unix_nano
// - time_rfc3339
// - time_rfc3339_nano
// - time_custom
// - id (Request ID)
// - remote_ip
// - uri
// - host
// - method
// - path
// - protocol
// - referer
// - user_agent
// - status
// - error
// - latency (In nanoseconds)
// - latency_human (Human readable)
// - bytes_in (Bytes received)
// - bytes_out (Bytes sent)
// - req_body (Request body)
// - header:<NAME>
// - query:<NAME>
// - form:<NAME>
//
// Example "${remote_ip} ${status}"
//
// Optional. Default value DefaultLoggerConfig.Format.
Format string `yaml:"format"`
// Optional. Default value DefaultLoggerConfig.CustomTimeFormat.
CustomTimeFormat string `yaml:"custom_time_format"`
// Output is a writer where logs in JSON format are written.
// Optional. Default value os.Stdout.
Output io.Writer
// contains filtered or unexported fields
}
LoggerConfig defines the config for Logger middleware.
type PoweredByConfig ¶
type PoweredByConfig struct {
// Skipper defines a function to skip middleware.
Skipper middleware.Skipper
Name string `yaml:"name"`
Version string `yaml:"version"`
}
PoweredByConfig is config
type RateLimitingCache ¶
RateLimitingCache is cache
type RateLimitingConfig ¶
type RateLimitingConfig struct {
// Skipper defines a function to skip middleware.
Skipper middleware.Skipper
// 生成ID
Generator func(req *http.Request, res *echo.Response, c echo.Context) string
// 窗口时间,单位:毫秒
Window time.Duration `yaml:"window"`
// 最大请求次数
Limit int `yaml:"limit"`
// Cache
Cache map[string]*RateLimitingCache
// 回调函数
Callback func(req *http.Request, res *echo.Response, c echo.Context) error
// lock
sync.RWMutex
}
RateLimitingConfig is config
Click to show internal directories.
Click to hide internal directories.