Skip to content

Как убрать из логов ERR structlog odd keyvals #11

@MarcSky

Description

@MarcSky

Привет, спасибо за отличную либу для логов, но один момент я не могу понять как убрать )
ERR structlog odd keyvals эта ошибка засоряет все логи и ужасно раздражает, хотя они работают отлично.

Я использую следующий формат ответа от логирования

 Oct  2 11:22:35 ERR structlog `odd keyvals` log.go:316

то есть мне нужна текущая дата и строчка с ошибкой или ответом.

const (
	LogRemote     = "remote"
	LogFunc       = "func"
	LogHTTPMethod = "httpMethod"
	LogHTTPStatus = "httpStatus"
	LogHandler    = "handler"
	LogGRPCCode   = "grpcCode"
)

// Default values.
var (
	ServiceHost      = os.Getenv("SERVICE_HOST")
)

// Init must be called once before using this package.
// It provides common initialization for both commands and tests.
func Init() {
	must.AbortIf = must.PanicIf
	structlog.DefaultLogger.
		SetPrefixKeys(
			structlog.KeyTime, LogGRPCCode,
			structlog.KeyLevel, structlog.KeyUnit,
		).
		SetDefaultKeyvals(
			structlog.KeyTime, structlog.Auto,
			structlog.KeySource, structlog.Auto,
		).
		SetSuffixKeys(
			structlog.KeySource,
		).
		SetKeysFormat(map[string]string{
			structlog.KeyTime:   " %[2]s",
			structlog.KeySource: " %6[2]s",
			structlog.KeyUnit:   " %6[2]s",
			LogGRPCCode:         " %-16.16[2]s",
			"config":            " %+[2]v",
			"duration":          " %[2]q",
			"request":           " %[1]s=`% [2]X`",
			"response":          " %[1]s=`% [2]X`",
		}).SetTimeFormat(time.StampMicro)
}

и есть такой в логировании API

			log := structlog.New(
				structlog.KeyTime, structlog.Auto,
				def.LogRemote, remote,
				def.LogHTTPStatus, "",
				def.LogHTTPMethod, r.Method,
				def.LogFunc, strings.TrimPrefix(r.URL.Path, basePath),
			).SetTimeFormat(time.StampMicro)

Пытался как то решить проблему сам но я не понял вообще причину этой ошибки, должно быть четное количество параметров key-value?)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions