diff --git a/middlewares/logger.go b/middlewares/logger.go index 33c8777bf..1dc773f9a 100644 --- a/middlewares/logger.go +++ b/middlewares/logger.go @@ -29,9 +29,13 @@ func NewLogger(file string) *Logger { } func (l *Logger) ServeHTTP(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) { - if(l.file == nil){ + if (l.file == nil) { next(rw, r) - }else{ + }else { handlers.CombinedLoggingHandler(l.file, next).ServeHTTP(rw, r) } +} + +func (l *Logger) Close() { + l.file.Close() } \ No newline at end of file diff --git a/traefik.go b/traefik.go index f2abeb083..962104a9b 100644 --- a/traefik.go +++ b/traefik.go @@ -46,6 +46,9 @@ func main() { // load global configuration gloablConfiguration := LoadFileConfig(*globalConfigFile) + loggerMiddleware := middlewares.NewLogger(gloablConfiguration.AccessLogsFile) + defer loggerMiddleware.Close() + // logging backends := []logging.Backend{} level, err := logging.LogLevel(gloablConfiguration.LogLevel) @@ -55,6 +58,7 @@ func main() { if len(gloablConfiguration.TraefikLogsFile) > 0 { fi, err := os.OpenFile(gloablConfiguration.TraefikLogsFile, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666) + defer fi.Close() if err != nil { log.Fatal("Error opening file", err) } else { @@ -137,7 +141,7 @@ func main() { // middlewares var negroni = negroni.New() negroni.Use(metrics) - negroni.Use(middlewares.NewLogger(gloablConfiguration.AccessLogsFile)) + negroni.Use(loggerMiddleware) negroni.UseHandler(configurationRouter) srv = &graceful.Server{