package fog import ( "fmt" "io" "github.com/go-logr/logr" ) type infoWriter struct{ logr.Logger } func (w *infoWriter) Write(p []byte) (int, error) { w.Info(string(p)) return len(p), nil } // InfoWriter creates a new io.Writer that writes output using the // logr.Logger's Info func func InfoWriter(l logr.Logger, name string) io.Writer { return &infoWriter{l.WithName(name)} } type errorWriter struct { logr.Logger name string } func (w *errorWriter) Write(p []byte) (int, error) { w.Error(fmt.Errorf("error occurred in %s", w.name), (string(p))) return len(p), nil } // ErrorWriter creates a new io.Writer that writes output using the // logr.Logger's Error func, where the error indicates the name of the // writer that produced the error func ErrorWriter(l logr.Logger, name string) io.Writer { return &errorWriter{ l.WithName(name), name, } }