diff --git a/go.mod b/go.mod index 0bb90e95..aa52fcad 100644 --- a/go.mod +++ b/go.mod @@ -20,9 +20,9 @@ require ( github.com/iris-contrib/pongo2 v0.0.1 github.com/iris-contrib/schema v0.0.1 github.com/json-iterator/go v1.1.9 - github.com/kataras/golog v0.0.17 + github.com/kataras/golog v0.0.18 github.com/kataras/neffos v0.0.16 - github.com/kataras/pio v0.0.7 + github.com/kataras/pio v0.0.8 github.com/kataras/sitemap v0.0.5 github.com/klauspost/compress v1.10.6 github.com/mediocregopher/radix/v3 v3.5.1 diff --git a/iris.go b/iris.go index 0ffd432a..827c3773 100644 --- a/iris.go +++ b/iris.go @@ -748,6 +748,9 @@ var RegisterOnInterrupt = host.RegisterOnInterrupt // Shutdown gracefully terminates all the application's server hosts and any tunnels. // Returns an error on the first failure, otherwise nil. func (app *Application) Shutdown(ctx stdContext.Context) error { + app.mu.Lock() + defer app.mu.Unlock() + for i, su := range app.Hosts { app.logger.Debugf("Host[%d]: Shutdown now", i) if err := su.Shutdown(ctx); err != nil { @@ -1239,7 +1242,7 @@ func (app *Application) tryStartTunneling() { app.config.vhost = publicAddr[strings.Index(publicAddr, "://")+3:] directLog := []byte(fmt.Sprintf("• Public Address: %s\n", publicAddr)) - app.Logger().Printer.Output.Write(directLog) + app.Logger().Printer.Write(directLog) } }) }) diff --git a/middleware/logger/logger.go b/middleware/logger/logger.go index 86a3a8c3..8493b0c1 100644 --- a/middleware/logger/logger.go +++ b/middleware/logger/logger.go @@ -112,7 +112,7 @@ func (l *requestLoggerMiddleware) ServeHTTP(ctx context.Context) { if l.config.Columns { endTimeFormatted := endTime.Format("2006/01/02 - 15:04:05") output := Columnize(endTimeFormatted, latency, status, ip, method, path, message, headerMessage) - _, _ = ctx.Application().Logger().Printer.Output.Write([]byte(output)) + _, _ = ctx.Application().Logger().Printer.Write([]byte(output)) return } // no new line, the framework's logger is responsible how to render each log.