jobrunner icon indicating copy to clipboard operation
jobrunner copied to clipboard

Use std logger to allow override output

Open vgarvardt opened this issue 5 years ago • 0 comments

This PR changes output for the application flow logs from direct write to os.Stdout (fmt.Print) to stdlib log that allows to override real output with the existing log writer. E.g.

imprt (
  "log"
  "go.uber.org/zap"
)

// implements io.Writer to write logs to app logger instead of default os.Stderr
type stdLoggerWriter struct {
	logger *zap.Logger
}

func (w *stdLoggerWriter) Write(p []byte) (int, error) {
	w.logger.Info(string(p), zap.String("source", "std-log"))
	return len(p), nil
}

logger, _ := zap.NewDevelopment()

// override std logger to write into app logger
log.SetOutput(&stdLoggerWriter{logger})

vgarvardt avatar Nov 14 '19 12:11 vgarvardt