MCPcopy Index your code
hub / github.com/coder/slog / Fmt

Method Fmt

internal/entryhuman/entry.go:202–338  ·  view source on GitHub ↗
(buf *bytes.Buffer, termW io.Writer, ent slog.SinkEntry)

Source from the content-addressed store, hash-verified

200}
201
202func (f Formatter) Fmt(buf *bytes.Buffer, termW io.Writer, ent slog.SinkEntry) {
203 reset(buf, termW)
204
205 // Timestamp + space
206 buf.WriteString(render(termW, timeStyle, ent.Time.Format(TimeFormat)))
207 buf.WriteString(" ")
208
209 // Level label + two spaces
210 lvl := bracketedLevel(ent.Level) // e.g. "[debu]", "[info]"
211 buf.WriteString(render(termW, levelStyle(ent.Level), lvl))
212 buf.WriteString(" ")
213
214 // Logger names: name1.name2.name3: (no strings.Join allocation)
215 if len(ent.LoggerNames) > 0 {
216 for i, name := range ent.LoggerNames {
217 if i > 0 {
218 buf.WriteString(".")
219 }
220 buf.WriteString(quoteKey(name))
221 }
222 buf.WriteString(": ")
223 }
224
225 // Message (detect multiline)
226 var multilineKey string
227 var multilineVal string
228 msg := strings.TrimSpace(ent.Message)
229 if strings.Contains(msg, "\n") {
230 multilineKey = "msg"
231 multilineVal = msg
232 msg = quote("...")
233 }
234 buf.WriteString(msg)
235
236 keyStyle := timeStyle
237 equalsStyle := timeStyle
238
239 // Write trace/span directly (do not mutate ent.Fields)
240 if ent.SpanContext.IsValid() {
241 buf.WriteString(tab)
242
243 buf.WriteString(render(termW, keyStyle, quoteKey("trace")))
244 buf.WriteString(render(termW, equalsStyle, "="))
245 buf.WriteString(ent.SpanContext.TraceID().String())
246 buf.WriteString(tab)
247 buf.WriteString(render(termW, keyStyle, quoteKey("span")))
248 buf.WriteString(render(termW, equalsStyle, "="))
249 buf.WriteString(ent.SpanContext.SpanID().String())
250 }
251
252 // Find a multiline field without mutating ent.Fields.
253 multiIdx := -1
254 for i, fld := range ent.Fields {
255 if multilineVal != "" {
256 break
257 }
258 var s string
259 switch v := fld.Value.(type) {

Callers 2

LogEntryMethod · 0.95
FmtFunction · 0.80

Calls 10

resetFunction · 0.85
renderFunction · 0.85
bracketedLevelFunction · 0.85
levelStyleFunction · 0.85
quoteKeyFunction · 0.85
quoteFunction · 0.85
writeValueFastFunction · 0.85
formatValueFunction · 0.85
StringMethod · 0.80
ErrorMethod · 0.45

Tested by

no test coverage detected