| 169 | } |
| 170 | |
| 171 | func (l *Logger) formatMsg(msg string, fields map[string]interface{}) string { |
| 172 | formatted := strings.Builder{} |
| 173 | |
| 174 | formatted.WriteString(msg) |
| 175 | formatted.WriteRune('\t') |
| 176 | |
| 177 | if len(l.Fields)+len(fields) != 0 { |
| 178 | if fields == nil { |
| 179 | fields = make(map[string]interface{}) |
| 180 | } |
| 181 | for k, v := range l.Fields { |
| 182 | fields[k] = v |
| 183 | } |
| 184 | if err := marshalOrderedJSON(&formatted, fields); err != nil { |
| 185 | // Fallback to printing the message with minimal processing. |
| 186 | return fmt.Sprintf("[BROKEN FORMATTING: %v] %v %+v", err, msg, fields) |
| 187 | } |
| 188 | } |
| 189 | |
| 190 | return formatted.String() |
| 191 | } |
| 192 | |
| 193 | type Formatter interface { |
| 194 | FormatLog() string |