package logger import ( "context" "io" "gitlab.com/wpetit/goweb/logger" ) type Writer struct { ctx context.Context level logger.Level } // Write implements io.Writer. func (w *Writer) Write(p []byte) (n int, err error) { w.log(string(p)) return len(p), nil } func (w *Writer) log(message string) { switch w.level { case logger.LevelDebug: logger.Debug(w.ctx, message) case logger.LevelInfo: logger.Info(w.ctx, message) case logger.LevelWarn: logger.Warn(w.ctx, message) case logger.LevelError: logger.Error(w.ctx, message) case logger.LevelCritical: logger.Critical(w.ctx, message) default: logger.Debug(w.ctx, message) } } func NewWriter(ctx context.Context, level logger.Level) *Writer { return &Writer{ctx, level} } var _ io.Writer = &Writer{}