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

Method provisionCommon

logging.go:342–394  ·  view source on GitHub ↗
(ctx Context, logging *Logging)

Source from the content-addressed store, hash-verified

340}
341
342func (cl *BaseLog) provisionCommon(ctx Context, logging *Logging) error {
343 if cl.WriterRaw != nil {
344 mod, err := ctx.LoadModule(cl, "WriterRaw")
345 if err != nil {
346 return fmt.Errorf("loading log writer module: %v", err)
347 }
348 cl.writerOpener = mod.(WriterOpener)
349 }
350 if cl.writerOpener == nil {
351 cl.writerOpener = StderrWriter{}
352 }
353 var err error
354 cl.writer, _, err = logging.openWriter(cl.writerOpener)
355 if err != nil {
356 return fmt.Errorf("opening log writer using %#v: %v", cl.writerOpener, err)
357 }
358
359 // set up the log level
360 cl.levelEnabler, err = parseLevel(cl.Level)
361 if err != nil {
362 return err
363 }
364
365 if cl.EncoderRaw != nil {
366 mod, err := ctx.LoadModule(cl, "EncoderRaw")
367 if err != nil {
368 return fmt.Errorf("loading log encoder module: %v", err)
369 }
370 cl.encoder = mod.(zapcore.Encoder)
371
372 // if the encoder module needs the writer to determine
373 // the correct default to use for a nested encoder, we
374 // pass it down as a secondary provisioning step
375 if cfd, ok := mod.(ConfiguresFormatterDefault); ok {
376 if err := cfd.ConfigureDefaultFormat(cl.writerOpener); err != nil {
377 return fmt.Errorf("configuring default format for encoder module: %v", err)
378 }
379 }
380 }
381 if cl.encoder == nil {
382 cl.encoder = newDefaultProductionLogEncoder(cl.writerOpener)
383 }
384 cl.buildCore()
385 if cl.CoreRaw != nil {
386 mod, err := ctx.LoadModule(cl, "CoreRaw")
387 if err != nil {
388 return fmt.Errorf("loading log core module: %v", err)
389 }
390 core := mod.(zapcore.Core)
391 cl.core = zapcore.NewTee(cl.core, core)
392 }
393 return nil
394}
395
396func (cl *BaseLog) buildCore() {
397 // logs which only discard their output don't need

Callers 2

provisionMethod · 0.80
provisionMethod · 0.80

Calls 6

buildCoreMethod · 0.95
parseLevelFunction · 0.85
LoadModuleMethod · 0.80
openWriterMethod · 0.80

Tested by

no test coverage detected