第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

go-logr 和 uber 的 zap 詳細(xì)程度有什么對應(yīng)關(guān)系?

go-logr 和 uber 的 zap 詳細(xì)程度有什么對應(yīng)關(guān)系?

Go
萬千封印 2022-10-10 18:06:16
我看到 Uber Zap 實(shí)現(xiàn)中有日志級(jí)別:    const (            // DebugLevel logs are typically voluminous, and are usually disabled in            // production.            DebugLevel Level = iota - 1            // InfoLevel is the default logging priority.            InfoLevel            // WarnLevel logs are more important than Info, but don't need individual            // human review.            WarnLevel            // ErrorLevel logs are high-priority. If an application is running smoothly,            // it shouldn't generate any error-level logs.            ErrorLevel            // DPanicLevel logs are particularly important errors. In development the            // logger panics after writing the message.            DPanicLevel            // PanicLevel logs a message, then panics.            PanicLevel            // FatalLevel logs a message, then calls os.Exit(1).            FatalLevel        ) 當(dāng)我在sigs.k8s.io/controller-runtime/pkg/log/zap記錄器中設(shè)置級(jí)別時(shí)使用它,它go-logr在引擎蓋下使用:func determineLogLevel(verbosityLevel string) zapcore.Level {    var zapLevel zapcore.Level    verbosityLevel = strings.ToLower(verbosityLevel)    switch verbosityLevel {    case ERROR:        zapLevel = zapcore.ErrorLevel    case WARNING:        zapLevel = zapcore.WarnLevel    case INFO:        zapLevel = zapcore.InfoLevel    case DEBUG:        zapLevel = zapcore.DebugLevel    default:        zapLevel = zapcore.InfoLevel    }    return zapLevel}// here zap is "sigs.k8s.io/controller-runtime/pkg/log/zap"opts := zap.Options{    StacktraceLevel: ... ,    Level:           determineLogLevel("ERROR"),    Encoder:         ... ,    ZapOpts:         ...,}但也可以選擇使用logr.Logger.V.這里的水平值與 Uber Zap 的常量中的值相同嗎?( DebugLevel, InfoLevel, WarnLevel, ....)我也看到了這個(gè):flag --zap-log-level:Zap 級(jí)別以配置日志記錄的詳細(xì)程度。可以是“調(diào)試”、“信息”、“錯(cuò)誤”或任何大于 0 的整數(shù)值之一,對應(yīng)于增加詳細(xì)程度的自定義調(diào)試級(jí)別”此標(biāo)志值是否與'szapcore.Level中的相同?sigs.k8s.iozap.Options
查看完整描述

1 回答

?
呼喚遠(yuǎn)方

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


查看完整回答
反對 回復(fù) 2022-10-10
  • 1 回答
  • 0 關(guān)注
  • 174 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)