1 回答

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個(gè)贊
編寫自定義Hook,將檢查條目是否severity設(shè)置了字段,如果沒有插入默認(rèn)值。將該鉤子附加到默認(rèn)全局或您自己的記錄器。
logrus.ErrorLevel您可以通過在返回值中僅包含該級(jí)別來限制掛鉤僅在條目上觸發(fā)Hook.Levels():
type ErrorHook struct {
}
func (h *ErrorHook) Levels() []logrus.Level {
// fire only on ErrorLevel (.Error(), .Errorf(), etc.)
return []logrus.Level{logrus.ErrorLevel}
}
func (h *ErrorHook) Fire(e *logrus.Entry) error {
// e.Data is a map with all fields attached to entry
if _, ok := e.Data["severity"]; !ok {
e.Data["severity"] = "normal"
}
return nil
}
func main() {
logrus.AddHook(&ErrorHook{})
logrus.WithFields(logrus.Fields{"animal": "walrus"}).Info("A walrus appears")
// time="2009-11-10T23:00:00Z" level=info msg="A walrus appears" animal=walrus
logrus.WithFields(logrus.Fields{"animal": "walrus"}).Error("A error walrus appears")
// time="2009-11-10T23:00:00Z" level=error msg="A error walrus appears" animal=walrus severity=normal
logrus.WithFields(logrus.Fields{"animal": "walrus", "severity": "high"}).Error("An overriden severity error walrus appears")
// time="2009-11-10T23:00:00Z" level=error msg="An overriden severity error walrus appears" animal=walrus severity=high
}
- 1 回答
- 0 關(guān)注
- 113 瀏覽
添加回答
舉報(bào)