MCPcopy
hub / github.com/caddyserver/caddy / setupNewDefault

Method setupNewDefault

logging.go:137–203  ·  view source on GitHub ↗
(ctx Context)

Source from the content-addressed store, hash-verified

135}
136
137func (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

Callers 1

openLogsMethod · 0.95

Calls 6

newDefaultProductionLogFunction · 0.85
buildOptionsMethod · 0.80
WriterKeyMethod · 0.65
FlushToMethod · 0.65
provisionMethod · 0.45
StringMethod · 0.45

Tested by

no test coverage detected