Uno de los módulos de registro que puede considerar es klog . Admite el registro en 'V', que brinda la flexibilidad de registrar en cierto nivel
klog es una bifurcación de glog y supera los siguientes inconvenientes
- glog presenta muchos "errores" e introduce desafíos en entornos en contenedores, los cuales no están bien documentados.
- glog no proporciona una manera fácil de probar los registros, lo que resta estabilidad al software que lo usa
- glog está basado en C ++ y klog es una implementación pura de golang
Implementación de muestra
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()
}