L'un des modules de journalisation que vous pouvez envisager est le suivant klog . Il supporte l'enregistrement en 'V' qui donne la flexibilité d'enregistrer à un certain niveau.
klog est un fork de glog et surmonte les inconvénients suivants
- glog présente de nombreux "gotchas" et introduit des défis dans les environnements conteneurisés, qui ne sont pas tous bien documentés.
- glog ne fournit pas un moyen facile de tester les journaux, ce qui nuit à la stabilité des logiciels qui l'utilisent.
- glog est basé sur C++ et klog est une implémentation pure de golang.
Exemple de mise en œuvre
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()
}