Требование состоит в том, что мне нужно, чтобы идентификатор запроса был помечен в каждом журнале. Я следую приведенному ниже подходу, он работает хорошо, но не уверен, что делаю это правильно. Пожалуйста, помогите мне проверить:
Во-первых, я объявил неинициализированную переменную регистратора, как показано ниже
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())
Мысли?