diff --git a/modules/caddyhttp/fileserver/command.go b/modules/caddyhttp/fileserver/command.go index bd740e861..53aa7aa5b 100644 --- a/modules/caddyhttp/fileserver/command.go +++ b/modules/caddyhttp/fileserver/command.go @@ -85,7 +85,7 @@ func cmdFileServer(fs caddycmd.Flags) (int, error) { if domain != "" { route.MatcherSetsRaw = []caddy.ModuleMap{ - caddy.ModuleMap{ + { "host": caddyconfig.JSON(caddyhttp.MatchHost{domain}, nil), }, } diff --git a/modules/caddyhttp/server.go b/modules/caddyhttp/server.go index ca83c5a43..e8bf90058 100644 --- a/modules/caddyhttp/server.go +++ b/modules/caddyhttp/server.go @@ -170,8 +170,8 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) { repl.Set("http.response.latency", latency) logger := accLog - if loggerName := s.Logs.getLoggerName(r.Host); loggerName != "" { - logger = logger.Named(loggerName) + if s.Logs != nil { + logger = s.Logs.wrapLogger(logger, r.Host) } log := logger.Info @@ -200,8 +200,8 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) { if err != nil { // prepare the error log logger := errLog - if loggerName := s.Logs.getLoggerName(r.Host); loggerName != "" { - logger = logger.Named(loggerName) + if s.Logs != nil { + logger = s.Logs.wrapLogger(logger, r.Host) } // get the values that will be used to log the error @@ -378,6 +378,14 @@ type ServerLogConfig struct { LoggerNames map[string]string `json:"logger_names,omitempty"` } +// wrapLogger wraps logger in a logger named according to user preferences for the given host. +func (slc ServerLogConfig) wrapLogger(logger *zap.Logger, host string) *zap.Logger { + if loggerName := slc.getLoggerName(host); loggerName != "" { + return logger.Named(loggerName) + } + return logger +} + func (slc ServerLogConfig) getLoggerName(host string) string { if loggerName, ok := slc.LoggerNames[host]; ok { return loggerName