1 回答

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