@@ -64,10 +64,11 @@ var (
6464
6565type (
6666 // Receiver is the interface for pluggable log receiver.
67- // For e.g: Console, File, HTTP, etc
67+ // For e.g: Console, File
6868 Receiver interface {
6969 Init (cfg * config.Config ) error
7070 SetPattern (pattern string ) error
71+ SetWriter (w io.Writer )
7172 IsCallerInfo () bool
7273 Writer () io.Writer
7374 Log (e * Entry )
@@ -137,7 +138,7 @@ func (l *Logger) SetLevel(level string) error {
137138 return nil
138139}
139140
140- // SetPattern methods sets the log format pattern.
141+ // SetPattern method sets the log format pattern.
141142func (l * Logger ) SetPattern (pattern string ) error {
142143 l .m .Lock ()
143144 defer l .m .Unlock ()
@@ -147,7 +148,7 @@ func (l *Logger) SetPattern(pattern string) error {
147148 return l .receiver .SetPattern (pattern )
148149}
149150
150- // SetReceiver sets the given receiver into logger instance.
151+ // SetReceiver method sets the given receiver into logger instance.
151152func (l * Logger ) SetReceiver (receiver Receiver ) error {
152153 l .m .Lock ()
153154 defer l .m .Unlock ()
@@ -160,6 +161,13 @@ func (l *Logger) SetReceiver(receiver Receiver) error {
160161 return l .receiver .Init (l .cfg )
161162}
162163
164+ // SetWriter method sets the given writer into logger instance.
165+ func (l * Logger ) SetWriter (w io.Writer ) {
166+ l .m .Lock ()
167+ defer l .m .Unlock ()
168+ l .receiver .SetWriter (w )
169+ }
170+
163171// ToGoLogger method wraps the current log writer into Go Logger instance.
164172func (l * Logger ) ToGoLogger () * slog.Logger {
165173 return slog .New (l .receiver .Writer (), "" , slog .LstdFlags )
0 commit comments