1 回答

TA貢獻1856條經驗 獲得超11個贊
go-logr和日志級別之間的對應關系go.uber.org/zap由下式給出:
zapLevel = -1 * logrLevel
換句話說,go-logr級別是級別的倒數zap。此信息可在go-logr/zapr包文檔中找到:
logr 中的級別對應于 Zap 中的自定義調試級別。logr 中的任何給定級別都由其在 zap ( zapLevel = -1*logrLevel) 中的倒數表示。例如 V(2) 相當于 Zap 中的日志級別 -2,而 V(1) 相當于 Zap 的 DebugLevel。
您還可以通過查看logr.Logger.Vby zaprpackage 的實現來查看關卡如何初始化的具體示例:
func (zl *zapLogger) V(level int) logr.Logger {
return &zapLogger{
lvl: zl.lvl - zapcore.Level(level),
l: zl.l,
}
}
該方法zapr.NewLogger構造了一個zapr.zapLoggerwithlvl字段設置為zap.InfoLevel(您知道是0),因此每次調用V此實現時,它都會減去給定的 int 值,從而獲得其負數。
該標志--zap-log-level從命令行(或 k8s yaml 配置)傳遞的字符串值映射到 Uber Zap 的級別,基于以下內容:
var levelStrings = map[string]zapcore.Level{
"debug": zap.DebugLevel,
"info": zap.InfoLevel,
"error": zap.ErrorLevel,
}
然后根據上面引用的文檔的要求,將數值乘以-1然后設置為實現。logr.Logger
- 1 回答
- 0 關注
- 167 瀏覽
添加回答
舉報