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})
This PR changes output for the application flow logs from direct write to
os.Stdout
(fmt.Print
) to stdliblog
that allows to override real output with the existing log writer. E.g.