logger

package module
v0.0.4 Latest Latest
Warning

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

Go to latest
Published: May 2, 2020 License: MIT Imports: 5 Imported by: 0

README

go-chi-logger

Go Report Card Documentation

chi logger middleware for zap

Installation

go get github.com/m8as/go-chi-logger

Usage

package main

import (
	"fmt"
	"github.com/go-chi/chi"
	l "github.com/m8as/go-chi-logger"
	"go.uber.org/zap"
	"go.uber.org/zap/zapcore"
	"log"
	"net/http"
)

func main() {
	config := zap.NewProductionConfig()
	config.Encoding = "json"
	config.Level = zap.NewAtomicLevelAt(zap.InfoLevel)
	config.OutputPaths = []string{"stdout"}
	config.EncoderConfig.MessageKey = "message"
	config.EncoderConfig.TimeKey = "timestamp"
	config.EncoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder
	logger, _ := config.Build()

	undo := zap.RedirectStdLog(logger)
	defer undo()

	r := chi.NewRouter()
	r.Use(l.Logger(logger))
	r.Get("/", func(w http.ResponseWriter, r *http.Request) {
		_, _ = fmt.Fprint(w, "Hello World!")
	})
	if serve := http.ListenAndServe(":8080", r); serve != nil {
		log.Printf("listen and serve error: %v", serve)
	}
}

Log example

{"level":"info","timestamp":"2020-05-02T01:26:02.718+0300","caller":"go-chi-logger/logger.go:17","message":"","Status Code":200,"Request Method":"GE
T","Content-Type":"","Content-Length":"","User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.
113 Safari/537.36","Server":"","Via":"","Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/
signed-exchange;v=b3;q=0.9","Path":"/","X-FORWARDED-FOR":"","Remote Addr":"[::1]:59296","Proto":"HTTP/1.1","Path":"/","Lat":0,"Size":12,"ReqID":""}

Documentation

Index

Constants

View Source
const UserAgent = "User-Agent"

Variables

This section is empty.

Functions

func Logger

func Logger(l *zap.Logger) func(next http.Handler) http.Handler

Logger is a middleware that logs the start and end of each request

Types

This section is empty.

Jump to

Keyboard shortcuts

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