You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

37 lines
712 B
Go

package main
import (
"log"
"net/http"
"os"
"time"
)
// Logger type
type Logger struct {
logger *log.Logger
}
// NewLogger returns a logger interface
func NewLogger() *Logger {
return &Logger{
logger: log.New(os.Stdout, appLabel, log.Ldate|log.Lmicroseconds),
}
}
// Println is proxy for println
func (l *Logger) Println(v ...interface{}) {
l.logger.Println(v...)
}
// Printf calls Printf on logger
func (l *Logger) Printf(f string, v ...interface{}) {
l.logger.Printf(f, v...)
}
func (l *Logger) ServeHTTP(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) {
start := time.Now()
next(rw, r)
l.logger.Printf("Completed %s to %s in %v", r.Method, r.URL.Path, time.Since(start))
}