Инициализация переменной регистратора в промежуточном программном обеспечении для каждого запроса - PullRequest
0 голосов
/ 07 мая 2020

Требование состоит в том, что мне нужно, чтобы идентификатор запроса был помечен в каждом журнале. Я следую приведенному ниже подходу, он работает хорошо, но не уверен, что делаю это правильно. Пожалуйста, помогите мне проверить:

Во-первых, я объявил неинициализированную переменную регистратора, как показано ниже

var CustomLogger zerolog.Logger

И затем я инициализирую переменную регистратора в промежуточном программном обеспечении для каждый запрос, как показано ниже, с requestID

func SetLogger() gin.HandlerFunc {
    return func(ctx *gin.Context) {
        logs_wrapper.CustomLogger = log.
            With().Str("RequestId", fmt.Sprintf("%s", ctx.MustGet("RequestId"))).Logger().
            With().Caller().Logger()
        ctx.Next()
    }
}

И я использую эту переменную регистратора для записи повсюду

logs_wrapper.CustomLogger.Error().Msg(err.Error())

Мысли?

...