/
log.go
40 lines (34 loc) · 827 Bytes
/
log.go
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
package log
import (
"io"
stdlog "log"
"os"
"github.com/briandowns/sky-island/config"
"github.com/go-kit/kit/log"
)
// stdlibAdapter
type stdlibAdapter struct {
log.Logger
}
// newStdlibAdapter
func newStdlibAdapter(logger log.Logger) io.Writer {
return stdlibAdapter{
Logger: logger,
}
}
// Write implements the io.Writer interface on the stdLibAdapter
func (a stdlibAdapter) Write(p []byte) (int, error) {
if err := a.Logger.Log("msg", string(p)); err != nil {
return 0, err
}
return len(p), nil
}
// Logger
func Logger(conf *config.Config, name string) (log.Logger, error) {
logger := log.NewJSONLogger(os.Stdout)
logger = log.With(logger, "ts", log.DefaultTimestampUTC)
logger = log.With(logger, "service", name)
stdlog.SetOutput(newStdlibAdapter(logger))
stdlog.SetFlags(0)
return logger, nil
}