Negroni middlewares
This commit is contained in:
parent
d209467b5a
commit
36847f671f
8 changed files with 139 additions and 120 deletions
37
middlewares/logger.go
Normal file
37
middlewares/logger.go
Normal file
|
@ -0,0 +1,37 @@
|
|||
/*
|
||||
Copyright
|
||||
*/
|
||||
package middlewares
|
||||
|
||||
import (
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"github.com/gorilla/handlers"
|
||||
)
|
||||
|
||||
// Logger is a middleware handler that logs the request as it goes in and the response as it goes out.
|
||||
type Logger struct {
|
||||
file *os.File
|
||||
}
|
||||
|
||||
// NewLogger returns a new Logger instance
|
||||
func NewLogger(file string) *Logger {
|
||||
if (len(file) > 0 ) {
|
||||
fi, err := os.OpenFile(file, os.O_RDWR | os.O_CREATE | os.O_APPEND, 0666)
|
||||
if err != nil {
|
||||
log.Fatal("Error opening file", err)
|
||||
}
|
||||
return &Logger{fi}
|
||||
}else {
|
||||
return &Logger{nil}
|
||||
}
|
||||
}
|
||||
|
||||
func (l *Logger) ServeHTTP(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) {
|
||||
if(l.file == nil){
|
||||
next(rw, r)
|
||||
}else{
|
||||
handlers.CombinedLoggingHandler(l.file, next).ServeHTTP(rw, r)
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue