38
38
// Options defines options for the logger.
39
39
type Options struct {
40
40
Level logg.Level
41
- Stdout io.Writer
42
- Stderr io.Writer
41
+ StdOut io.Writer
42
+ StdErr io.Writer
43
43
DistinctLevel logg.Level
44
44
StoreErrors bool
45
45
HandlerPost func (e * logg.Entry ) error
@@ -48,21 +48,22 @@ type Options struct {
48
48
49
49
// New creates a new logger with the given options.
50
50
func New (opts Options ) Logger {
51
- if opts .Stdout == nil {
52
- opts .Stdout = os .Stdout
51
+ if opts .StdOut == nil {
52
+ opts .StdOut = os .Stdout
53
53
}
54
- if opts .Stderr == nil {
55
- opts .Stderr = os .Stdout
54
+ if opts .StdErr == nil {
55
+ opts .StdErr = os .Stderr
56
56
}
57
+
57
58
if opts .Level == 0 {
58
59
opts .Level = logg .LevelWarn
59
60
}
60
61
61
62
var logHandler logg.Handler
62
- if terminal .PrintANSIColors (os .Stdout ) {
63
- logHandler = newDefaultHandler (opts .Stdout , opts .Stderr )
63
+ if terminal .PrintANSIColors (os .Stderr ) {
64
+ logHandler = newDefaultHandler (opts .StdErr , opts .StdErr )
64
65
} else {
65
- logHandler = newNoAnsiEscapeHandler (opts .Stdout , opts .Stderr , false , nil )
66
+ logHandler = newNoAnsiEscapeHandler (opts .StdErr , opts .StdErr , false , nil )
66
67
}
67
68
68
69
errorsw := & strings.Builder {}
@@ -137,7 +138,8 @@ func New(opts Options) Logger {
137
138
logCounters : logCounters ,
138
139
errors : errorsw ,
139
140
reset : reset ,
140
- out : opts .Stdout ,
141
+ stdOut : opts .StdOut ,
142
+ stdErr : opts .StdErr ,
141
143
level : opts .Level ,
142
144
logger : logger ,
143
145
tracel : l .WithLevel (logg .LevelTrace ),
@@ -153,8 +155,6 @@ func NewDefault() Logger {
153
155
opts := Options {
154
156
DistinctLevel : logg .LevelWarn ,
155
157
Level : logg .LevelWarn ,
156
- Stdout : os .Stdout ,
157
- Stderr : os .Stdout ,
158
158
}
159
159
return New (opts )
160
160
}
@@ -163,8 +163,6 @@ func NewTrace() Logger {
163
163
opts := Options {
164
164
DistinctLevel : logg .LevelWarn ,
165
165
Level : logg .LevelTrace ,
166
- Stdout : os .Stdout ,
167
- Stderr : os .Stdout ,
168
166
}
169
167
return New (opts )
170
168
}
@@ -189,7 +187,8 @@ type Logger interface {
189
187
Level () logg.Level
190
188
LoggCount (logg.Level ) int
191
189
Logger () logg.Logger
192
- Out () io.Writer
190
+ StdOut () io.Writer
191
+ StdErr () io.Writer
193
192
Printf (format string , v ... any )
194
193
Println (v ... any )
195
194
PrintTimerIfDelayed (start time.Time , name string )
@@ -207,7 +206,8 @@ type logAdapter struct {
207
206
logCounters * logLevelCounter
208
207
errors * strings.Builder
209
208
reset func ()
210
- out io.Writer
209
+ stdOut io.Writer
210
+ stdErr io.Writer
211
211
level logg.Level
212
212
logger logg.Logger
213
213
tracel logg.LevelLogger
@@ -259,8 +259,12 @@ func (l *logAdapter) Logger() logg.Logger {
259
259
return l .logger
260
260
}
261
261
262
- func (l * logAdapter ) Out () io.Writer {
263
- return l .out
262
+ func (l * logAdapter ) StdOut () io.Writer {
263
+ return l .stdOut
264
+ }
265
+
266
+ func (l * logAdapter ) StdErr () io.Writer {
267
+ return l .stdErr
264
268
}
265
269
266
270
// PrintTimerIfDelayed prints a time statement to the FEEDBACK logger
@@ -279,11 +283,11 @@ func (l *logAdapter) Printf(format string, v ...any) {
279
283
if ! strings .HasSuffix (format , "\n " ) {
280
284
format += "\n "
281
285
}
282
- fmt .Fprintf (l .out , format , v ... )
286
+ fmt .Fprintf (l .stdOut , format , v ... )
283
287
}
284
288
285
289
func (l * logAdapter ) Println (v ... any ) {
286
- fmt .Fprintln (l .out , v ... )
290
+ fmt .Fprintln (l .stdOut , v ... )
287
291
}
288
292
289
293
func (l * logAdapter ) Reset () {
0 commit comments