morgan for Go
github.com/malcolmston/morgan
HTTP request logger middleware.
GitHubports expressjs/morgan
Wrap any http.Handler to log every request in a named format (combined, common, dev, short, tiny, json) or your own :token string. Custom tokens, skip predicates, immediate mode and buffered output — just like the Node original.
Install
shell
$ go get github.com/malcolmston/morganQuick start
main.go
import "github.com/malcolmston/morgan"
mux := http.NewServeMux()
mux.HandleFunc("/", handler)
http.ListenAndServe(":8080",
morgan.New(mux, morgan.Dev, morgan.Config{}))Features
- Named formats:
Combined,Common,Dev,Short,Tiny,JSON - Raw format strings with
:method :url :status :response-timetokens - Register custom tokens and named formats
Skippredicate (e.g. only log errors),Immediatemode- Buffered writes at an interval, any
io.Writerstream - Auto-detects a TTY to enable/disable dev colors