Newer
Older
package log
import (
"fmt"
"strings"
"time"
)
// A Formatter formats an entry.
type Formatter interface {
Format(*Entry) ([]byte, error)
}
// A FormatterFunc implements Formatter using a single function.
type FormatterFunc func(*Entry) ([]byte, error)
// Format implements Formatter.
func (f FormatterFunc) Format(entry *Entry) ([]byte, error) { return f(entry) }
// TextFormatter formats an entry as one-line text.
var TextFormatter = FormatterFunc(func(entry *Entry) ([]byte, error) {
return []byte(strings.TrimSpace(fmt.Sprintf(
entry.Time.Format(time.RFC3339),
entry.Category,
entry.Fields,
)) + "\n"), nil