flog/formatter.go

27 lines
594 B
Go
Raw Normal View History

2018-05-08 16:30:55 +02:00
package flog
import (
"fmt"
"io"
"strconv"
"text/tabwriter"
)
// TextFormatter logs in a human readable format
type TextFormatter struct{}
// FormatMessage implements LogFormatType
func (l TextFormatter) FormatMessage(w io.Writer, entry LogEntry) {
fmt.Fprintln(w, entry.Level, entry.Time.Format(`[2006-01-02 15:04:05]`), entry.Message)
if len(entry.StackTrace) > 0 {
tw := tabwriter.NewWriter(w, 1, 4, 4, ' ', 0)
for _, v := range entry.StackTrace {
fmt.Fprint(tw, ` `, v.Function, "\t", v.File+`:`+strconv.Itoa(v.Line), "\n")
}
tw.Flush()
}
w.Write([]byte{'\n'})
}