aboutsummaryrefslogtreecommitdiff
path: root/log/logger.go
blob: 770f1c1bcedcbd88613364d47e482387d4b49066 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package log

import (
	"fmt"
	"io"
)

type Logger interface {
	Log(format string, a ...interface{})
}

var (
	_ Logger = &logger{}
	_ Logger = &nopLogger{}
)

type logger struct {
	w io.Writer
}

func NewLogger(w io.Writer) (*logger, error) {
	if w == nil {
		return nil, fmt.Errorf("w is nil; NewLogger() needs a writer")
	}
	return &logger{
		w: w,
	}, nil
}

func (l *logger) Log(format string, a ...interface{}) {
	fmt.Fprintf(l.w, format+"\n", a...)
}

type nopLogger struct {
}

func NewNopLogger() *nopLogger {
	return &nopLogger{}
}

func (l *nopLogger) Log(format string, a ...interface{}) {
}