@@ -52,32 +52,45 @@ type Logger interface {
5252 Flush () string
5353}
5454
55- type LoggerToIoWriter struct {
56- Writer io.Writer
55+ type LoggerToCustomStreams struct {
56+ Stdout io.Writer
57+ Stderr io.Writer
5758}
5859
59- func (s LoggerToIoWriter ) Fprintln (w io.Writer , level string , format string , a ... interface {}) {
60- fmt .Fprintln (s .Writer , Format (format , a ... ))
60+ func (s LoggerToCustomStreams ) Fprintln (w io.Writer , level string , format string , a ... interface {}) {
61+ target := s .Stdout
62+ if w == os .Stderr {
63+ target = s .Stderr
64+ }
65+ fmt .Fprintln (target , Format (format , a ... ))
6166}
6267
63- func (s LoggerToIoWriter ) UnformattedFprintln (w io.Writer , str string ) {
64- fmt .Fprintln (s .Writer , str )
68+ func (s LoggerToCustomStreams ) UnformattedFprintln (w io.Writer , str string ) {
69+ target := s .Stdout
70+ if w == os .Stderr {
71+ target = s .Stderr
72+ }
73+ fmt .Fprintln (target , str )
6574}
6675
67- func (s LoggerToIoWriter ) UnformattedWrite (w io.Writer , data []byte ) {
68- s .Writer .Write (data )
76+ func (s LoggerToCustomStreams ) UnformattedWrite (w io.Writer , data []byte ) {
77+ target := s .Stdout
78+ if w == os .Stderr {
79+ target = s .Stderr
80+ }
81+ target .Write (data )
6982}
7083
71- func (s LoggerToIoWriter ) Println (level string , format string , a ... interface {}) {
84+ func (s LoggerToCustomStreams ) Println (level string , format string , a ... interface {}) {
7285 s .Fprintln (nil , level , format , a ... )
7386}
7487
75- func (s LoggerToIoWriter ) Flush () string {
88+ func (s LoggerToCustomStreams ) Flush () string {
7689 return ""
7790}
7891
79- func (s LoggerToIoWriter ) Name () string {
80- return "LoggerToIoWriter "
92+ func (s LoggerToCustomStreams ) Name () string {
93+ return "LoggerToCustomStreams "
8194}
8295
8396type NoopLogger struct {}
0 commit comments