This packages is a replacement for glog in projects that use the go-kit logger.
It is inspired by istio's glog package for zap: https://github.com/istio/glog
Override the official glog package with this one.
This simply replaces the code in vendor/golang/glog with the code of this package.
With dep
In your Gopkg.toml:
[[override]]
name = "github.com/golang/glog"
source = "github.com/kubermatic/glog-gokit"With Go modules
Add this line to your go.mod file:
replace github.com/golang/glog => github.com/kubermatic/glog-gokit master
In your main.go:
// Import the package like it is original glog
import "github.com/golang/glog"
// Create go-kit logger in your main.go
logger := log.NewLogfmtLogger(log.NewSyncWriter(os.Stdout))
logger = log.With(logger, "ts", log.DefaultTimestampUTC)
logger = log.With(logger, "caller", log.DefaultCaller)
logger = level.NewFilter(logger, level.AllowAll())
// Overriding the default glog with our go-kit glog implementation.
// Thus we need to pass it our go-kit logger object.
glog.SetLogger(logger)Setting the logger to the glog package MUST happen before using glog in any package.
| glog | gokit |
|---|---|
| Info | Debug |
| InfoDepth | Debug |
| Infof | Debug |
| Infoln | Debug |
| Warning | Warn |
| WarningDepth | Warn |
| Warningf | Warn |
| Warningln | Warn |
| Error | Error |
| ErrorDepth | Error |
| Errorf | Error |
| Errorln | Error |
| Exit | Error |
| ExitDepth | Error |
| Exitf | Error |
| Exitln | Error |
| Fatal | Error |
| FatalDepth | Error |
| Fatalf | Error |
| Fatalln | Error |
This table is rather opinionated and build for use with the Kubernetes' Go client.