package logger import ( "io" "os" "github.com/rs/zerolog" "github.com/samber/lo" ) var logger *zerolog.Logger func init() { var writers []io.Writer writers = append(writers, zerolog.ConsoleWriter{Out: os.Stderr}) writers = append(writers, newRollingWriter()) mw := io.MultiWriter(writers...) logger = lo.ToPtr(zerolog.New(mw).With().Timestamp().Logger()) logger.Info().Msg("Logger initialized.") } func Panic() *zerolog.Event { return logger.Panic() } func Fatal() *zerolog.Event { return logger.Fatal() } func Error() *zerolog.Event { return logger.Error() } func Warn() *zerolog.Event { return logger.Warn() } func Info() *zerolog.Event { return logger.Info() } func Debug() *zerolog.Event { return logger.Debug() } func Trace() *zerolog.Event { return logger.Trace() } func Print(v ...interface{}) { logger.Print(v...) } func Printf(format string, v ...interface{}) { logger.Printf(format, v...) } func With() zerolog.Context { return logger.With() }