Skip to content

Commit

Permalink
User an interface
Browse files Browse the repository at this point in the history
  • Loading branch information
suzaku committed Aug 14, 2020
1 parent 6ca0df7 commit 27bc142
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 10 deletions.
6 changes: 3 additions & 3 deletions logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ type Logger struct {
// Writer specifies the writer of output. It uses os.Stderr in if empty.
Writer io.Writer

MultiWriters *MultiWriter
leveledWriterRouter LeveledWriterRouter
}

const (
Expand Down Expand Up @@ -285,8 +285,8 @@ func (l *Logger) header(level Level) *Event {
e.exit = false
e.panic = true
}
if l.MultiWriters != nil {
e.w = l.MultiWriters.GetWriterByLevel(level)
if l.leveledWriterRouter != nil {
e.w = l.leveledWriterRouter.GetWriterByLevel(level)
} else if l.Writer != nil {
e.w = l.Writer
} else {
Expand Down
6 changes: 5 additions & 1 deletion multi.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ import (
"io"
)

type LeveledWriterRouter interface {
GetWriterByLevel(level Level) io.Writer
}

type CombinedWriter []io.Writer

func (cw CombinedWriter) Write(p []byte) (n int, firstErr error) {
Expand Down Expand Up @@ -82,7 +86,7 @@ func (w *MultiWriter) GetWriterByLevel(level Level) io.Writer {
return CombinedWriter(w.levelWriters[:int(level)+1])
}

// Close implements io.Closer, and closes the underlying MultiWriters.
// Close implements io.Closer, and closes the underlying leveledWriterRouter.
func (w *MultiWriter) Close() (err error) {
for _, writer := range []io.Writer{
w.InfoWriter,
Expand Down
12 changes: 6 additions & 6 deletions multi_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ func TestNewMultiWriters(t *testing.T) {
},
}
logger := Logger{
Level: InfoLevel,
Caller: 1,
MultiWriters: w,
Level: InfoLevel,
Caller: 1,
leveledWriterRouter: w,
}
assertNLogs := func(want int) {
matches, _ := filepath.Glob("file-*.*.log")
Expand Down Expand Up @@ -229,9 +229,9 @@ func BenchmarkNewMultiWriter(b *testing.B) {
},
}
logger := Logger{
Level: InfoLevel,
Caller: 1,
MultiWriters: w,
Level: InfoLevel,
Caller: 1,
leveledWriterRouter: w,
}
b.ReportAllocs()
b.ResetTimer()
Expand Down

0 comments on commit 27bc142

Please sign in to comment.