MCPcopy
hub / github.com/sirupsen/logrus / WithFields

Method WithFields

entry.go:128–154  ·  view source on GitHub ↗

WithFields adds a map of fields to the Entry.

(fields Fields)

Source from the content-addressed store, hash-verified

126
127// WithFields adds a map of fields to the Entry.
128func (entry *Entry) WithFields(fields Fields) *Entry {
129 data := make(Fields, len(entry.Data)+len(fields))
130 for k, v := range entry.Data {
131 data[k] = v
132 }
133 fieldErr := entry.err
134 for k, v := range fields {
135 isErrField := false
136 if t := reflect.TypeOf(v); t != nil {
137 switch {
138 case t.Kind() == reflect.Func, t.Kind() == reflect.Ptr && t.Elem().Kind() == reflect.Func:
139 isErrField = true
140 }
141 }
142 if isErrField {
143 tmp := fmt.Sprintf("can not add field %q", k)
144 if fieldErr != "" {
145 fieldErr = entry.err + ", " + tmp
146 } else {
147 fieldErr = tmp
148 }
149 } else {
150 data[k] = v
151 }
152 }
153 return &Entry{Logger: entry.Logger, Data: data, Time: entry.Time, err: fieldErr, Context: entry.Context}
154}
155
156// WithTime overrides the time of the Entry.
157func (entry *Entry) WithTime(t time.Time) *Entry {

Callers 2

WithFieldMethod · 0.95

Calls

no outgoing calls

Tested by 1