mirror of https://github.com/prometheus/prometheus
2.1 KiB
2.1 KiB
klog-gokit
This packages is a replacement for klog in projects that use the go-kit logger.
It is heavily inspired by the github.com/kubermatic/glog-gokit
package.
Usage
Override the official klog package with this one.
This simply replaces the code in vendor/k8s.io/klog
with the code of this package.
With dep
In your Gopkg.toml
:
[[override]]
name = "k8s.io/klog"
source = "github.com/simonpasquier/klog-gokit"
With Go modules
Add this line to your go.mod
file:
replace k8s.io/klog => github.com/kubermatic/klog-gokit master
In your main.go
:
// Import the package like it is original klog
import "k8s.io/klog"
// 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 klog with our go-kit klog implementation.
// Thus we need to pass it our go-kit logger object.
klog.SetLogger(logger)
Setting the logger to the klog package MUST happen before using klog in any package.
Function Levels
klog | 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.
License
Apache License 2.0, see LICENSE.