echozap

package module
v1.1.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 1, 2023 License: MIT Imports: 5 Imported by: 0

README

echozap - Public Fork

Middleware for Golang Echo framework that provides integration with Uber´s Zap logging library for logging HTTP requests.

Commitizen friendly semantic-release

Actions Status Codacy Badge Codacy Badge

Pre-requisites

Usage

package main

import (
	"net/http"

	"github.com/brpaz/echozap"
	"github.com/labstack/echo/v4"
	"go.uber.org/zap"
)

func main() {
	e := echo.New()

	zapLogger, _ := zap.NewProduction()

	e.Use(echozap.ZapLogger(zapLogger))

	e.GET("/", func(c echo.Context) error {
		return c.String(http.StatusOK, "Hello, World!")
	})
	e.Logger.Fatal(e.Start(":1323"))
}

Logged details

The following information is logged:

  • Status Code
  • Time
  • Uri
  • Method
  • Hostname
  • Remote IP Address

Todo

  • Add more customization options.

🤝 Contributing

Contributions, issues and feature requests are welcome!

Show your support

If this project have been useful for you, I would be grateful to have your support.

Give a ⭐️ to the project, or just:

Buy Me A Coffee

Author

👤 Bruno Paz

📝 License

Copyright © 2019 Bruno Paz.

This project is MIT licensed.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// DefaultZapLoggerConfig is the default ZapLogger middleware config.
	DefaultZapLoggerConfig = ZapLoggerConfig{
		Skipper:                  DefaultSkipper,
		IncludeRequestLogMessage: false,
	}
)

Functions

func DefaultSkipper

func DefaultSkipper(echo.Context) bool

DefaultSkipper returns false which processes the middleware

func ZapLogger

func ZapLogger(log *zap.Logger) echo.MiddlewareFunc

ZapLogger is a middleware and zap to provide an "access log" like logging for each request.

func ZapLoggerWithConfig

func ZapLoggerWithConfig(log *zap.Logger, config ZapLoggerConfig) echo.MiddlewareFunc

ZapLoggerWithConfig is a middleware (with configuration) and zap to provide an "access log" like logging for each request.

Types

type Skipper

type Skipper func(c echo.Context) bool

type ZapLoggerConfig

type ZapLoggerConfig struct {
	// Skipper defines a function to skip middleware
	Skipper Skipper
	// Whether to include the request method and URI in the log message field
	// Makes it easier to visualize the logs in systems that expand only the log message by default(e.g. Stackdriver)
	IncludeRequestLogMessage bool
}

ZapLoggerConfig defines the config for ZapLogger middleware

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL