(ctx Context)
| 135 | } |
| 136 | |
| 137 | func (logging *Logging) setupNewDefault(ctx Context) error { |
| 138 | if logging.Logs == nil { |
| 139 | logging.Logs = make(map[string]*CustomLog) |
| 140 | } |
| 141 | |
| 142 | // extract the user-defined default log, if any |
| 143 | newDefault := new(defaultCustomLog) |
| 144 | if userDefault, ok := logging.Logs[DefaultLoggerName]; ok { |
| 145 | newDefault.CustomLog = userDefault |
| 146 | } else { |
| 147 | // if none, make one with our own default settings |
| 148 | var err error |
| 149 | newDefault, err = newDefaultProductionLog() |
| 150 | if err != nil { |
| 151 | return fmt.Errorf("setting up default Caddy log: %v", err) |
| 152 | } |
| 153 | logging.Logs[DefaultLoggerName] = newDefault.CustomLog |
| 154 | } |
| 155 | |
| 156 | // options for the default logger |
| 157 | options, err := newDefault.CustomLog.buildOptions() |
| 158 | if err != nil { |
| 159 | return fmt.Errorf("setting up default log: %v", err) |
| 160 | } |
| 161 | |
| 162 | // set up this new log |
| 163 | err = newDefault.CustomLog.provision(ctx, logging) |
| 164 | if err != nil { |
| 165 | return fmt.Errorf("setting up default log: %v", err) |
| 166 | } |
| 167 | |
| 168 | filteringCore := &filteringCore{newDefault.CustomLog.core, newDefault.CustomLog} |
| 169 | newDefault.logger = zap.New(filteringCore, options...) |
| 170 | |
| 171 | // redirect the default caddy logs |
| 172 | defaultLoggerMu.Lock() |
| 173 | oldDefault := defaultLogger |
| 174 | defaultLogger = newDefault |
| 175 | defaultLoggerMu.Unlock() |
| 176 | |
| 177 | // if the new writer is different, indicate it in the logs for convenience |
| 178 | var newDefaultLogWriterKey, currentDefaultLogWriterKey string |
| 179 | var newDefaultLogWriterStr, currentDefaultLogWriterStr string |
| 180 | if newDefault.writerOpener != nil { |
| 181 | newDefaultLogWriterKey = newDefault.writerOpener.WriterKey() |
| 182 | newDefaultLogWriterStr = newDefault.writerOpener.String() |
| 183 | } |
| 184 | if oldDefault.writerOpener != nil { |
| 185 | currentDefaultLogWriterKey = oldDefault.writerOpener.WriterKey() |
| 186 | currentDefaultLogWriterStr = oldDefault.writerOpener.String() |
| 187 | } |
| 188 | if newDefaultLogWriterKey != currentDefaultLogWriterKey { |
| 189 | oldDefault.logger.Info("redirected default logger", |
| 190 | zap.String("from", currentDefaultLogWriterStr), |
| 191 | zap.String("to", newDefaultLogWriterStr), |
| 192 | ) |
| 193 | } |
| 194 |
no test coverage detected