MCPcopy
hub / github.com/uber-go/zap / EncodeEntry

Method EncodeEntry

zapcore/json_encoder.go:361–431  ·  zapcore/json_encoder.go::jsonEncoder.EncodeEntry
(ent Entry, fields []Field)

Source from the content-addressed store, hash-verified

359}
360
361func (enc *jsonEncoder) EncodeEntry(ent Entry, fields []Field) (*buffer.Buffer, error) {
362 final := enc.clone()
363 final.buf.AppendByte('{')
364
365 if final.LevelKey != "" && final.EncodeLevel != nil {
366 final.addKey(final.LevelKey)
367 cur := final.buf.Len()
368 final.EncodeLevel(ent.Level, final)
369 if cur == final.buf.Len() {
370 // User-supplied EncodeLevel was a no-op. Fall back to strings to keep
371 // output JSON valid.
372 final.AppendString(ent.Level.String())
373 }
374 }
375 if final.TimeKey != "" && !ent.Time.IsZero() {
376 final.AddTime(final.TimeKey, ent.Time)
377 }
378 if ent.LoggerName != "" && final.NameKey != "" {
379 final.addKey(final.NameKey)
380 cur := final.buf.Len()
381 nameEncoder := final.EncodeName
382
383 // if no name encoder provided, fall back to FullNameEncoder for backwards
384 // compatibility
385 if nameEncoder == nil {
386 nameEncoder = FullNameEncoder
387 }
388
389 nameEncoder(ent.LoggerName, final)
390 if cur == final.buf.Len() {
391 // User-supplied EncodeName was a no-op. Fall back to strings to
392 // keep output JSON valid.
393 final.AppendString(ent.LoggerName)
394 }
395 }
396 if ent.Caller.Defined {
397 if final.CallerKey != "" {
398 final.addKey(final.CallerKey)
399 cur := final.buf.Len()
400 final.EncodeCaller(ent.Caller, final)
401 if cur == final.buf.Len() {
402 // User-supplied EncodeCaller was a no-op. Fall back to strings to
403 // keep output JSON valid.
404 final.AppendString(ent.Caller.String())
405 }
406 }
407 if final.FunctionKey != "" {
408 final.addKey(final.FunctionKey)
409 final.AppendString(ent.Caller.Function)
410 }
411 }
412 if final.MessageKey != "" {
413 final.addKey(enc.MessageKey)
414 final.AppendString(ent.Message)
415 }
416 if enc.buf.Len() > 0 {
417 final.addElementSeparator()
418 final.buf.Write(enc.buf.Bytes())

Callers

nothing calls this directly

Calls 14

cloneMethod · 0.95
addFieldsFunction · 0.85
putJSONEncoderFunction · 0.85
AppendByteMethod · 0.80
addKeyMethod · 0.80
addElementSeparatorMethod · 0.80
BytesMethod · 0.80
closeOpenNamespacesMethod · 0.80
AppendStringMethod · 0.65
AddTimeMethod · 0.65
WriteMethod · 0.65
AddStringMethod · 0.65

Tested by

no test coverage detected