slogfmt

package
v0.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 10, 2026 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TimeFormat     = "2006-01-02T15:04:05.000Z0700"
	MiniTimeFormat = "15:04:05.000"
)

TimeFormat is the time format to use for plain (non-JSON) output. This is a version of RFC3339 that contains millisecond precision.

View Source
const ModuleKey = "module"
View Source
const OutboardKey = "outboard"

Variables

View Source
var (
	Trace = slog.LevelDebug - 4
	Debug = slog.LevelDebug
	Info  = slog.LevelInfo
	Warn  = slog.LevelWarn
	Error = slog.LevelError
)

Functions

func NewTestHandler

func NewTestHandler(t testing.T, opts *slog.HandlerOptions) slog.Handler

Types

type Buffer

type Buffer []byte

buffer adapted from go/src/fmt/print.go

func NewBuffer

func NewBuffer() *Buffer

func (*Buffer) Free

func (b *Buffer) Free()

func (*Buffer) Len

func (b *Buffer) Len() int

func (*Buffer) Reset

func (b *Buffer) Reset()

func (*Buffer) SetLen

func (b *Buffer) SetLen(n int)

func (*Buffer) String

func (b *Buffer) String() string

func (*Buffer) Write

func (b *Buffer) Write(p []byte) (int, error)

func (*Buffer) WriteByte

func (b *Buffer) WriteByte(c byte) error

func (*Buffer) WriteNewLine

func (b *Buffer) WriteNewLine()

func (*Buffer) WriteRune

func (b *Buffer) WriteRune(r rune) error

func (*Buffer) WriteString

func (b *Buffer) WriteString(s string) (int, error)

type TextHandler

type TextHandler struct {
	// contains filtered or unexported fields
}

TextHandler is a [Handler] that writes Records to an io.Writer as a sequence of key=value pairs separated by spaces and followed by a newline.

func NewTextHandler

func NewTextHandler(w io.Writer, opts *slog.HandlerOptions) *TextHandler

NewTextHandler creates a TextHandler that writes to w, using the given options. If opts is nil, the default options are used.

func (*TextHandler) Enabled

func (h *TextHandler) Enabled(_ context.Context, level slog.Level) bool

Enabled reports whether the handler handles records at the given level. The handler ignores records whose level is lower.

func (*TextHandler) Handle

func (h *TextHandler) Handle(_ context.Context, r slog.Record) error

Handle formats its argument [Record] as a single line of space-separated key=value items.

If the Record's time is zero, the time is omitted. Otherwise, the key is "time" and the value is output in RFC3339 format with millisecond precision.

If the Record's level is zero, the level is omitted. Otherwise, the key is "level" and the value of [Level.String] is output.

If the AddSource option is set and source information is available, the key is "source" and the value is output as FILE:LINE.

The message's key is "msg".

To modify these or other attributes, or remove them from the output, use [HandlerOptions.ReplaceAttr].

If a value implements encoding.TextMarshaler, the result of MarshalText is written. Otherwise, the result of fmt.Sprint is written.

Keys and values are quoted with strconv.Quote if they contain Unicode space characters, non-printing characters, '"' or '='.

Keys inside groups consist of components (keys or group names) separated by dots. No further escaping is performed. Thus there is no way to determine from the key "a.b.c" whether there are two groups "a" and "b" and a key "c", or a single group "a.b" and a key "c", or single group "a" and a key "b.c". If it is necessary to reconstruct the group structure of a key even in the presence of dots inside components, use [HandlerOptions.ReplaceAttr] to encode that information in the key.

Each call to Handle results in a single serialized call to io.Writer.Write.

func (*TextHandler) WithAttrs

func (h *TextHandler) WithAttrs(attrs []slog.Attr) slog.Handler

WithAttrs returns a new TextHandler whose attributes consists of h's attributes followed by attrs.

func (*TextHandler) WithGroup

func (h *TextHandler) WithGroup(name string) slog.Handler

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL