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/morgan

Quick 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-time tokens
  • Register custom tokens and named formats
  • Skip predicate (e.g. only log errors), Immediate mode
  • Buffered writes at an interval, any io.Writer stream
  • Auto-detects a TTY to enable/disable dev colors
morgan