caddyhttp: Add nil check (fixes #3248 and fixes #3250)

This commit is contained in:
Matthew Holt 2020-04-10 08:12:42 -06:00
parent 9991fdc495
commit 999ab22b8c
No known key found for this signature in database
GPG Key ID: 2A349DD577D586A5
2 changed files with 13 additions and 5 deletions

View File

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

View File

@ -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