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
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))
|
|
}
|