Salah satu modul logging yang bisa Anda pertimbangkan adalah klog . Ini mendukung logging 'V' yang memberikan fleksibilitas untuk log pada level tertentu
klog adalah garpu glog dan mengatasi kelemahan berikut
- glog menghadirkan banyak "gotchas" dan memperkenalkan tantangan dalam lingkungan dalam peti kemas, yang semuanya tidak didokumentasikan dengan baik.
- glog tidak menyediakan cara mudah untuk menguji log, yang mengurangi stabilitas perangkat lunak yang menggunakannya
- glog adalah berbasis C ++ dan klog adalah implementasi golang murni
Implementasi Sampel
package main
import (
"flag"
"k8s.io/klog"
)
type myError struct {
str string
}
func (e myError) Error() string {
return e.str
}
func main() {
klog.InitFlags(nil)
flag.Set("v", "1")
flag.Parse()
klog.Info("hello", "val1", 1, "val2", map[string]int{"k": 1})
klog.V(3).Info("nice to meet you")
klog.Error(nil, "uh oh", "trouble", true, "reasons", []float64{0.1, 0.11, 3.14})
klog.Error(myError{"an error occurred"}, "goodbye", "code", -1)
klog.Flush()
}